jQuery MiniUI

标题: miniUI datagrid的编辑器在Js中动态改变编辑器类型 [打印本页]

作者: renyanli    时间: 2018-11-27 09:47:34     标题: miniUI datagrid的编辑器在Js中动态改变编辑器类型

本帖最后由 renyanli 于 2018-11-27 09:53 编辑

[attach]11567[/attach]
如上图需求,条件项中的数据是动态加载的,,档用户选择时间维度的条件项时,后面的值列自动变为日期控件;如果选择了数字维度的条件时,值列变为数字编辑器;如果选择了编码表(类似是否超时,评价状态这样的)的条件项,则值列变为下拉框,其他文字描述则变成文本框编辑器;
[attach]11568[/attach][attach]11569[/attach][attach]11570[/attach]
仿照官网demo写的部分代码如上,但并不出现如期效果,现在效果是不管选择什么条件项,值列都不可编辑

作者: felt    时间: 2018-11-27 10:00:41

[attach]11571[/attach]
把这个示例放到试用包demo/test下运行。
基于前面给你们的例子改造的



作者: renyanli    时间: 2018-11-27 10:31:38

felt 发表于 2018-11-27 10:00
把这个示例放到试用包demo/test下运行。
基于前面给你们的例子改造的

您好,您这种写法我看编辑器类型都是在json串里定义好的了对吧,我的json是这样的:var data = [{ id: "name", text: "姓名","btnType":"T" }, { id: "age", text: "年龄","btnType":"S"  }, { id: "isYong", text: "是否成年" ,"btnType":"B" }, { id: "brithday", text: "生日","btnType":"D"  }, { id: "countrys", text: "国籍","btnType":"C" }]

---T=字符串-文本框,S=数字-数字框,B=布尔值-下拉框是否,D=日期值-日期控件,C=下拉框-自定义数据

作者: felt    时间: 2018-11-27 10:52:12

renyanli 发表于 2018-11-27 10:31
您好,您这种写法我看编辑器类型都是在json串里定义好的了对吧,我的json是这样的:var data = [{ id: "n ...

请像示例一样提前准备好编辑器,根据选择的数据能关联获取到要替换的编辑器。
作者: renyanli    时间: 2018-11-27 12:09:11

felt 发表于 2018-11-27 10:52
请像示例一样提前准备好编辑器,根据选择的数据能关联获取到要替换的编辑器。 ...

grid.on("cellendedit",function(e){
        console.info("cellendedit");
        var record = e.record;
        if(e.field == "editor"){
                 //动态改变编辑器的属性
                var combo = e.sender;
                var rowIndex = grid.getEditorOwnerRow(combo);
                //编辑器类型-textboxEditor,spinnerEditor......
                var editor_n = getDataTypeValue(e.fldtyp);
                //获取次编辑器同行的 值 编辑器,并给值编辑器的editorType赋值,值 编辑器在cellbeginedit时改变编辑器类型
                var editorZHI = grid.getCellEditor("ZHI", rowIndex);
                editorZHI.setEditorType(editor_n);
        }
       
});
请问怎么在编辑条件项这个编辑器时,获取同行的值-列的编辑器,我这样写,页面报错TypeError: editorZHI is null

作者: felt    时间: 2018-11-27 14:06:53

renyanli 发表于 2018-11-27 12:09
grid.on("cellendedit",function(e){
        console.info("cellendedit");
        var record = e.record;

没有这样过的必要,如果要更新数据,直接grid.updateRow(row,{field:value})。
本来表格一列的编辑器就只有一个,你这里这列要切换,那么就不能在这列非编辑状态的时候获取了。
只能在oncellbeginedit的时候切换。

作者: renyanli    时间: 2018-11-27 14:12:03

[attach]11574[/attach][attach]11575[/attach][attach]11576[/attach]
您好,动态编辑器的我改的好像已经可以了,不过,这个日期控件的我设置了格式是yyyy-MM-dd,,可是输入完鼠标离开之后,格式就如图2那样了,是我设置的哪里不对吗





欢迎光临 jQuery MiniUI (http://miniui.com/discuss/) Powered by Discuz! X2