- 注册时间
- 2012-5-4
- 最后登录
- 2013-5-30
- 阅读权限
- 10
- 积分
- 104
- 精华
- 0
- 帖子
- 36
|
1,我不希望DataGrid分页,也就是说pageSize我不进行设置,这样可以List出来所有数据吗?
2,以下是一个datagrid,我希望在Qty,Price编辑的时候来执行CountAmount方法计算金额出来.可在做的时候我发现我没有办法取Qty,Price的值,用row.Qty到的是原来load时的旧值,而用var textbox = e.sender;textbox.value这个取的是当前触发事件的物件内的值,这个是最新的值,可我又没办法得到另一个Price的新值.
- <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" >
- <div property="columns">
- <div cellCls="actionIcons" name="action" width="40" headerAlign="center" align="center" renderer="onActionRenderer" cellStyle="padding:0;">#</div>
- <div field="ProductPN" displayField="ProductPN" width="100" headerAlign="center" align="left" allowSort="false">商品編號
- <input property="editor" class="mini-buttonedit" style="width:100%;" onbuttonclick="onProductPNButtonEdit" required="true" />
- </div>
- <div field="ProductName" name="ProductName" width="*" headerAlign="center" align="left" allowSort="false">商品名稱</div>
- <div field="Unit" name="Unit" width="60" headerAlign="center" align="center" allowSort="false">單位</div>
- <div field="Qty" name="Qty" width="100" headerAlign="center" align="right" allowSort="false">數量
- <input property="editor" name="QtyEditor" class="mini-textbox rightAlign" style="width:100%;" required="true" onvalidation="onQtyValidation" onvaluechanged="CountAmount" />
- </div>
- <div field="Price" name="Price" width="100" headerAlign="center" align="right" allowSort="false">單價
- <input property="editor" name="PriceEditor" class="mini-textbox rightAlign" style="width:100%;" required="true" onvalidation="onPriceValidation" onvaluechanged="CountAmount" />
- </div>
- <div field="Amount" name="Amount" width="150" headerAlign="center" align="right" allowSort="false">金額</div>
- </div>
- </div>
复制代码
上面的问题,后来我用了以下办法.代码如下:
- function CountAmount(e){
- var source = e.source;
- var textbox = e.sender;
- var row = grid.getEditorOwnerRow(textbox);
- if(textbox.name=='QtyEditor'){
- grid.updateRow(row,{"Qty":textbox.value});
- }else{
- grid.updateRow(row,{"Price":textbox.value});
- }
- grid.beginEditRow(row);
- alert(row.Qty);
- alert(row.Price);
- }
复制代码 可这个方法写的怪怪的,先是updateRow,再beginEditRow.
对了,再处的过程中我还试了另一个办法,就是先commitEditRow ,再beginEditRow.最后再用row.name的方法取值,结果程式会报this.el是null的错误.可以查查这个bug.
網頁錯誤詳細資料
訊息: 'this.el' 是 null 或不是一個物件
行: 1
字元: 1
程式碼: 0
|
|