jQuery MiniUI

标题: treeGrid 中如何使用treeSelect 控件 [打印本页]

作者: muzizhuben    时间: 2013-7-15 17:25:52     标题: treeGrid 中如何使用treeSelect 控件

本帖最后由 muzizhuben 于 2013-7-15 17:27 编辑

代码:
<div id="proTree" class="mini-treegrid" 。。。>
                <div property="columns">
                    <div name="c_leader" field="c_leader" width="80" headerAlign="center" align="center">组长
                    <input property="editor" class="mini-treeselect" url="../common/getRigUserList.htm" multiSelect="false"  valueFromSelect="true"
                        textField="c_name" valueField="c_path" parentField="parent_path" allowInput="false" data="data" /></div>
       </div>
</div>
需求说明:  页面加载该treegrid  正常显示数据,当点击组长这一单元格时,显示treeselect 。通过选择treeselect中的节点,改变单元格中的值。 单元格中显示节点名称。
目前问题: 当选择完treeselect 后,treegrid中的单元格中的内容显示的是节点的value值。请问如何让节点的text值显示再单元格中呢?


作者: factory    时间: 2013-7-15 17:28:40

这种有value和text的编辑器,除了给列设定field以为,还需要设定displayField="你显示文本的字段名",来负责显示文本内容。
作者: muzizhuben    时间: 2013-7-15 17:33:53

非常感谢 版主给力
作者: muzizhuben    时间: 2013-7-16 10:25:44

续:
因为treegrid中有一列的field和上面的dsplayField名称一致,所以treeselect 值改变后,则两列都改掉啦,于是现在,向自己写事件 绑定treeselect 的值。
问题:treegrid中 每行都会有一个treeselect 。我如何才能获得每行的treeselect对象 且绑定事件呢?还有就是获得了选择的值,又如何获得treegird的单元格值? 望版主给些思路
作者: muzizhuben    时间: 2013-7-16 10:40:41

别沉了 自己先顶顶 呵呵  版主请帮忙看看!
作者: muzizhuben    时间: 2013-7-16 10:44:31

tree.on("drawcell",function(){
var column = e.column,
if (column.field == "c_leader") {
                                                                column.editor.on("valuechanged",function(){
        alert(column.editor.getValue());
});
}
});
这样写 貌似也不行!求指导

作者: felt    时间: 2013-7-16 11:14:52

直接在那个编辑器上写事件
<input property="editor" class="mini-treeselect" .......
     onvaluechanged="onValueChanged"
            />
function onValueChanged(e){
        var editor=e.sender;        
        alert(editor.getValue())
      }
作者: muzizhuben    时间: 2013-7-16 11:20:20

felt 发表于 2013-7-16 11:14
直接在那个编辑器上写事件

function onValueChanged(e){

那如何给所在的单元格赋值呢?
作者: factory    时间: 2013-7-16 11:37:20

muzizhuben 发表于 2013-7-16 11:20
那如何给所在的单元格赋值呢?

grid.update(row,{name:"张三"})

row这一行的name这一列的单元格改成张三
作者: muzizhuben    时间: 2013-7-16 11:41:58

factory 发表于 2013-7-16 11:37
grid.update(row,{name:"张三"})

row这一行的name这一列的单元格改成张三

row是行号吧 请问 如何通过editor控件获得行号呢 有什么属性嘛?
作者: felt    时间: 2013-7-16 12:08:29

如何通过editor控件获得行号呢

grid.getEditorOwnerRow ( editor )可以用这个方法获取editor所在行的行对象。
作者: muzizhuben    时间: 2013-7-16 12:51:17

felt 发表于 2013-7-16 12:08
grid.getEditorOwnerRow ( editor )可以用这个方法获取editor所在行的行对象。

function onLeaderChaged(e){
                  var editor=e.sender;      
                  tree.updateRow(tree.getEditorOwnerRow (editor),{"c_leader":editor.getText()});
                  alert(tree.getEditorOwnerRow (editor).c_leader);   //此处弹出的确是选择的node名
                }
但是当失去光标之后,那个单元格里仍然显示的选择的value值  我想让失去光标后,显示的node的值 如何处理
作者: factory    时间: 2013-7-16 17:32:33

muzizhuben 发表于 2013-7-16 11:41
row是行号吧 请问 如何通过editor控件获得行号呢 有什么属性嘛?

1.单元格编辑器,只有当编辑状态的时候才会被创建,平时非编辑状态是不存在的,你获取不到
2.编辑的时候,该行肯定是被选中的,你直接var row = grid.getSelected()来获取row好了




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