jQuery MiniUI

标题: datagrid 取值问题 [打印本页]

作者: lifestyle    时间: 2013-6-7 09:29:05     标题: datagrid 取值问题

  1. <div class="mini-toolbar" style="padding:2px;border-bottom:0;">
  2.                 <table style="width:100%;">
  3.                         <tr>
  4.                                 <td align="left">批量操作<input id="commandCombox" name="commandCombox" class="mini-combobox" onvaluechanged="command" /> <a class="mini-button" onclick="removeAllSelecteds" plain="true" iconCls="icon-cancel">清空</a> <a class="mini-button" iconCls="icon-goto" plain="true" onclick="command">操作</a>
  5.                                 </td>
  6.                                 <td width="10px"><img src="scripts/miniui/themes/icons/tip.png" />
  7.                                 </td>
  8.                                 <td width="90px" align="right"><font style="font-family: 宋体; font-size:14px;">操作机器列表</font>
  9.                                 </td>
  10.                         </tr>
  11.                 </table>
  12.         </div>
  13.         <div id="fit" class="mini-fit">
  14.                 <div class="mini-datagrid" id="serverGrid" style="width:100%;height:100%;" allowCellEdit="true" allowCellSelect="true" allowAlternating="true" sizeList="[20,30]" pageSize="30" allowMoveColumn="fasle" allowResizeColumn="false">
  15.                         <div property="columns">
  16.                                 <div type="indexcolumn" width="18" headerAlign="center" align="center">编号</div>
  17.                                 <div field="id" id="id" name="id" width="40" headerAlign="center" allowSort="true" align="center"></div>
  18.                                 <div field="iAssetsId" width="30" headerAlign="center" allowSort="true" align="center">资产编号</div>
  19.                                 <div field="iAgentNetIp" width="30" headerAlign="center" allowSort="true" align="center">外网IP</div>
  20.                                 <div field="iAgentLocIp" width="30" headerAlign="center" allowSort="true" align="center">内网IP</div>
  21.                                 <div field="commandType" type="comboboxcolumn" autoShowPopup="true" align="center" width="20" headerAlign="center">
  22.                                         操作类型<input id="commandType" name="commandType" property="editor" class="mini-combobox" data="Genders" />
  23.                                 </div>
  24.                                 <div field="manager" displayField="manager_name" name="manager" width="120" headerAlign="center">
  25.                                         操作规则 <input property="editor" class="mini-buttonedit" onbuttonclick="onButtonEdit1" />
  26.                                 </div>
  27.                                 <div field="manager" displayField="manager_name" name="manager" width="120" headerAlign="center">
  28.                                         所有规则 <input property="editor" class="mini-buttonedit" onbuttonclick="searchAllRulesByServerId" />
  29.                                 </div>
  30.                         </div>
  31.                 </div>
  32.         </div>
复制代码

我先介绍我想做的功能,在toolbar里面,有一个下拉框,当我点击下拉框选择一个值的时候(onvaluechanged事件),改变datagrid里面“操作类型”中所有行这一列combox的值,如何做操作?

问题1: 这列操作类型在后台数据中是不存在的,是我临时加上去的数据列,为了方便用户操作而勾选上的。

问题2: 我通过grid获取所有row,在通过row.field拿不到那列combox的值,也设置不了.

问题3:我又尝试用grid获取一个特定名的列对象,也没办法获取到。


求助管理员和其他做过此功能的朋友们。


作者: lifestyle    时间: 2013-6-7 10:16:07

- -看来是无解了,我尝试了很多中办法,我都能拿到这个单元格,并且改变里面的值,但是就是拿不到里面的combox,而且页面也不显示。。。
作者: niko    时间: 2013-6-8 21:03:57

参考:http://www.miniui.com/demo/#src=datagrid/celllinkedit.html
开始编辑的时候,动态设置combobox的下拉数据。
作者: lifestyle    时间: 2013-6-9 21:39:03

本帖最后由 lifestyle 于 2013-6-9 21:44 编辑
niko 发表于 2013-6-8 21:03
参考:http://www.miniui.com/demo/#src=datagrid/celllinkedit.html
开始编辑的时候,动态设置combobox的 ...

是的,我在toolbar里面做了一个下拉框,在此下拉框上绑定了一个onvaluechanged方法,用来同步更新datagrid的所有combox的改变级联,但是值确实是放进去了,每行那列需要点击才能激活的combox cell 没有发生任何改变。
datagrid表面上也没有进行重新的绘制。
因为我这个datagrid是从前一级的页面进行oldDatagrid.getData()拿出来的值,然后放到这个datagrid里的,所以并不能重新进行reload加在数据,本身也没有任何url指向。
所以在当我全部把值放入里面的时候,是不是必须要进行reload方法,才能把值得具体显示到cell里?

作者: lifestyle    时间: 2013-6-9 21:49:38

niko 发表于 2013-6-8 21:03
参考:http://www.miniui.com/demo/#src=datagrid/celllinkedit.html
开始编辑的时候,动态设置combobox的 ...

我看了管理员给我发的demo。
是这样的,我toolbar里面的combox的值,原本就是死值,我要把死值放到下面全部的combox里面去,并且让表格加在上toolbar里面combox所选中的死值的数据。
不知道如何做呢?
作者: niko    时间: 2013-6-10 16:46:17

示例就是动态加载combobox编辑器的数据。
示例是用setUrl做的
你可以用combo.setData(data);来做
作者: lifestyle    时间: 2013-6-11 23:08:57

niko 发表于 2013-6-10 16:46
示例就是动态加载combobox编辑器的数据。
示例是用setUrl做的
你可以用combo.setData(data);来做 ...

关键问题是我的toolbar里面的combox不是通过url来查询出来的啊,是我在js里面写的固定值,我要把固定值通过onvaluechanged方法,把toolbar里面选取的固定值,放入datagrid里面的combox里面去。
作者: niko    时间: 2013-6-12 18:23:44

1. combo.setUrl(url);
2. combo.setData(data);
作者: lifestyle.m1k    时间: 2013-6-25 15:19:48

niko 发表于 2013-6-12 18:23
1. combo.setUrl(url);
2. combo.setData(data);

我问题已经自己通过其他逻辑手段解决了。
管理员可能没注意我上面的发的内容,我这个grid里面的数据来源不是通过url来的,而是通过其他页面的数据组合成的data然后通过那个页面的getData方法拿到data数据,在通过ajax传递到当前的这个页面。
这个页面不可重载,但是后来因为有一个问题,我自己写了一个重载的方法,排序方面我最后用的client方式排序的。
总之我的批量的问题,我通过其他手段解决了,不过还是谢谢管理员了。




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