jQuery MiniUI

 找回密码
 立即注册
查看: 13782|回复: 5
打印 上一主题 下一主题

grid.getRow方法问题 [复制链接]

Rank: 2

跳转到指定楼层
楼主
发表于 2012-6-14 14:32:34 |只看该作者 |倒序浏览
  1. <div id="datagrid1" class="mini-datagrid" style="width:100%;height:210px; margin-top:5px;" showFooter="false" url="order.php?act=getdtl&OrderOID={$OID}" idField="id" ajaxMethod="GET" allowResize="false" allowAlternating="true" frozenStartColumn="0" frozenEndColumn="1" showSummaryRow="true" onload="onGridLoad" >
  2. <div property="columns">
  3. <div cellCls="actionIcons" name="action" width="40" headerAlign="center" align="center" renderer="onActionRenderer" cellStyle="padding:0;">#</div>
  4. <div field="ProductPN" displayField="ProductPN" width="100" headerAlign="center" align="left" allowSort="false">商品編號
  5. <input property="editor" class="mini-buttonedit" style="width:100%;" onbuttonclick="onProductPNButtonEdit" required="true" />
  6. </div>
  7. <div field="ProductName" name="ProductName" width="*" headerAlign="center" align="left" allowSort="false">商品名稱</div>
  8. <div field="Unit" name="Unit" width="60" headerAlign="center" align="center" allowSort="false">單位</div>
  9. <div field="Qty" name="Qty" width="100" headerAlign="center" align="right" allowSort="false">數量
  10. <input property="editor" name="QtyEditor" class="mini-textbox rightAlign" style="width:100%;" required="true" onvalidation="onQtyValidation" onvaluechanged="CountAmount" />
  11. </div>
  12. <div field="Price" name="Price" width="100" headerAlign="center" align="right" allowSort="false">單價
  13. <input property="editor" name="PriceEditor" class="mini-textbox rightAlign" style="width:100%;" required="true" onvalidation="onPriceValidation" onvaluechanged="CountAmount" />
  14. </div>
  15. <div field="Amount" name="Amount" width="150" headerAlign="center" align="right" allowSort="false">金額</div>
  16. </div>
  17. </div>

  18. <script type="text/javascript">
  19. <!--
  20. var form,grid;
  21. var rownum=0;
  22. jQuery(document).ready(function() {
  23. init();
  24. });
  25. function init(){
  26. grid = mini.get("datagrid1");
  27. grid.load();
  28. grid.on("load", function (e) {
  29. for(var i = 0;i<rownum;i++){
  30.    var rowabc = grid.getRow(i);
  31.    grid.beginEditRow(rowabc);
  32. }
  33. });
  34. }
  35. function onActionRenderer(e) {
  36. rownum++;//記錄總的行數
  37. var grid = e.sender;
  38. var record = e.record;
  39. var uid = record._uid;
  40. var rowIndex = e.rowIndex;

  41. var s = '<span class="icon-remove" title="删除记录" onclick="delRow('+uid+')"></span>';
  42. return s;
  43. }
复制代码
原来的程序我是用如下代码:
grid.on("load", function (e) {
  for(var i = 0;i<rownum;i++){
   var row = grid.getRowByUID(i);
   grid.beginEditRow(row);
  }
});
来启动行编辑的,可现在发现2.0.8后,getRowByUID方法不见了.我改用getRow来获取行,可结果总是报row未定义的错误.

想问一下有没有别的办法启动所有行为编辑状态,或者说只能用上面的方法.可getRow...

Rank: 8Rank: 8

沙发
发表于 2012-6-14 14:58:46 |只看该作者
var data = grid.getData();
for(var i=0;i<data.length;i++){
     grid.beginEditRow(data[i]);
}
使表格的所有行都处于编辑状态

Rank: 2

板凳
发表于 2012-6-14 15:06:14 |只看该作者
factory 发表于 2012-6-14 14:58
var data = grid.getData();
for(var i=0;i

还是报"row"未定义的错误

Rank: 8Rank: 8

地板
发表于 2012-6-14 15:10:23 |只看该作者
athrun 发表于 2012-6-14 15:06
还是报"row"未定义的错误

1.你去下载最新版本更新下试试。

2.如果还有问题,请把出错的示例打包上传,我们给你测试下看看。

Rank: 2

5#
发表于 2012-6-15 08:12:57 |只看该作者
本帖最后由 athrun 于 2012-6-15 08:19 编辑
factory 发表于 2012-6-14 15:10
1.你去下载最新版本更新下试试。

2.如果还有问题,请把出错的示例打包上传,我们给你测试下看看。 ...

  1. <div field="ProductPN" displayField="ProductPN" width="100" headerAlign="center" align="left" allowSort="false">商品編號
  2.                 <input property="editor" class="mini-buttonedit" style="width:100%;" onbuttonclick="onProductPNButtonEdit" required="true" />
  3.             </div>
复制代码
问题已经找出来了,是因为我在编辑列中有一个商品编号的类型用的是mini-buttonedit,

        grid.on("load", function (e) {
                var data = grid.getData();
                for(var i=0;i<data.length;i++){
                        grid.beginEditRow(data);
                }
        });
结果在执行到grid.beginEditRow时就会报row未定义,

如果我改为mini-textbox,这个程序没有问题,一切正常.

麻烦请查一下此bug.


另外有一个建议,你们在新的版本中加了allowCellEdit属性,其实我确的也可以加一个allowAllRowEdit的属性.对于有时间用户要求像excel表格一样都可以编辑时这样会比较方便,不用开发人员用什么for....一行一行启动编辑.



官方的demo中的以下例子在点击edit后都会有错误:
http://www.miniui.com/demo/datagrid/rowedit_lookup.html
http://www.miniui.com/demo/datagrid/rowedit_openwindow.html
http://www.miniui.com/demo/datagrid/rowedit_openpage.html

Rank: 2

6#
发表于 2012-6-15 08:25:23 |只看该作者
另外还有一个小建议,希望完善API文档,以目前的文档来看做的真的不够好.

比如说grid.getData()方法.在api中根本没有说明.
grid.getRowByUID方法原来应该是有说明的,或是在你们提供的demo中有使用,我记不清楚了.现在的api说明中也没有此方法的说明.

没有完善API文档,这样让开发人员使用起来感觉很迷茫.

Archiver|普加软件

GMT+8, 2024-11-29 13:12 , Processed in 1.042840 second(s), 10 queries .

Powered by Discuz! X2

© 2001-2011 Comsenz Inc.

回顶部