FineUI 官方论坛

标题: GRID 编辑模式下 怎么自动计算 [打印本页]

作者: su_huanyu    时间: 2017-4-17 10:41
标题: GRID 编辑模式下 怎么自动计算
大家好,我想问一下,GRID中的
<f:RenderField ColumnID="SL" ID="c_1" DataField="SL" Width="60px" HeaderText="请领量">
  <Editor>
    <f:NumberBox ID="NumberBox1" Required="true" runat="server" BoxConfigAlign="Stretch" AutoPostBack="True" />
  </Editor>
</f:RenderField>
<f:RenderField ColumnID="DJ" ID="c_2" DataField="DJ" Hidden="true" Width="60px" HeaderText="单价">
  <Editor>
    <f:NumberBox ID="NumberBox2" Required="true" runat="server" AutoPostBack="True" />
  </Editor>
</f:RenderField>
<f:RenderField ColumnID="ZJ" ID="c_3" DataField="ZJ" Hidden="true" Width="60px" HeaderText="总价">
  <Editor>
    <f:NumberBox ID="NumberBox3" AutoPostBack="true" Required="true" runat="server" />
  </Editor>
</f:RenderField>
我想总价的是自动计算的,
在OnTextChanged="NumberBox1_TextChanged"中
NumberBox3.text=NumberBox1.text,这个好像没有用
NumberBox3的显示没有变化

作者: sanshi    时间: 2017-4-17 11:16
不能这么写,你要更新的是单元格的值,而不是单元格编辑器的值。

专业版有示例:http://fineui.com/demo_mvc/#/dem ... /UpdateCellValueTax
作者: su_huanyu    时间: 2017-4-17 11:31
那还能能过Grid1.GetModifiedDict()这个来保存吗
作者: su_huanyu    时间: 2017-4-17 14:00
开源版可以实现这个功能吗
作者: leetle    时间: 2017-4-17 17:20
可以的,添加事件 <Listeners>
                                                <fistener Event="beforeedit" Handler="Gbeforeedit" />
                                                <fistener Event="edit" Handler="onGridAfterEdit" />
                                                <fistener Event="cellkeydown" Handler="cellkeydown" />
                                            </Listeners>
作者: leetle    时间: 2017-4-17 17:21
function onGridAfterEdit(editor, params) {
            //updateSummary();

            var me = this, columnId = params.column.id, rowId = params.record.getId();

            if (columnId === 'FQty' || columnId === 'FPrice') {
                var itemCateId = me.f_getCellValue(rowId, 'FCateName');
                var itemFUnit = me.f_getCellValue(rowId, 'FUnit');

                //alert(itemCateId);

                if (itemCateId == '气体' && itemFUnit == '瓶') {
                    var fQty = parseFloat(me.f_getCellValue(rowId, 'FQty'));
                    me.f_updateCellValue(rowId, 'FBottleQty', fQty);

                    var fPrice = parseFloat(me.f_getCellValue(rowId, 'FPrice'));
                    me.f_updateCellValue(rowId, 'FAmount', (fQty * fPrice).toFixed(2)).toFixed(2);

                } else {
                    var fQty = parseFloat(me.f_getCellValue(rowId, 'FQty'));
                    me.f_updateCellValue(rowId, 'FBottleQty', 0);

                    var fPrice = parseFloat(me.f_getCellValue(rowId, 'FPrice'));
                    me.f_updateCellValue(rowId, 'FAmount', (fQty * fPrice).toFixed(2)).toFixed(2);
                }

                updateSummary();
            }
        };

        function updateSummary() {

            // 回发到后台更新
            __doPostBack('', 'UPDATE_SUMMARY');
        };
作者: su_huanyu    时间: 2017-4-18 14:36
太谢谢了




欢迎光临 FineUI 官方论坛 (https://fineui.com/BBS/) Powered by Discuz! X3.4