jQuery MiniUI

标题: 使用grid.getSelected()获取到的是数据改变之前的值 [打印本页]

作者: lt2017    时间: 2017-7-8 12:29:37     标题: 使用grid.getSelected()获取到的是数据改变之前的值

使用grid.getSelected()获取到的行数据是改变之前的,怎么获取改变之后的。

作者: dforce    时间: 2017-7-8 13:34:19

这和行数据改变不改变没有什么关系,grid.getSelected()获取到的是当前选中行。
作者: lt2017    时间: 2017-7-8 14:16:19

dforce 发表于 2017-7-8 13:34
这和行数据改变不改变没有什么关系,grid.getSelected()获取到的是当前选中行。 ...


valuechanged 事件中使用 grid.getSelected().属性 获取的是改之前的旧值,有什么方式获得更改之后的值吗
作者: felt    时间: 2017-7-10 10:10:27

lt2017 发表于 2017-7-8 14:16
valuechanged 事件中使用 grid.getSelected().属性 获取的是改之前的旧值,有什么方式获得更改之后的值 ...

你这valuechanged绑定的控件式表格的编辑器吗?
从编辑器更新到行数据上,是有一定的时间开销的。
可以延时一会再获取
setTimeout(function(){
    var row=grid.getSelected()
},100)
作者: lt2017    时间: 2017-7-10 10:47:59

felt 发表于 2017-7-10 10:10
你这valuechanged绑定的控件式表格的编辑器吗?
从编辑器更新到行数据上,是有一定的时间开销的。
可以延 ...

问题是解决了,可是显示的值和编辑器里的值不一致
作者: felt    时间: 2017-7-10 12:38:52

lt2017 发表于 2017-7-10 10:47
问题是解决了,可是显示的值和编辑器里的值不一致

请贴出具体代码,你的编辑器是什么编辑器,显示的值和编辑器里的值分别是什么
作者: lt2017    时间: 2017-7-13 09:10:09

felt 发表于 2017-7-10 12:38
请贴出具体代码,你的编辑器是什么编辑器,显示的值和编辑器里的值分别是什么 ...

    <div id="datagrid1" class="mini-datagrid" style="width: 1500px; height: 500px;" url="/Views/ImportExcel/SaleReportPageAB.aspx?method=getData"
        idfield="id" allowresize="true" pagesize="20" allowcelledit="true" allowcellselect="true"
        multiselect="true" editnextonenterkey="true" editnextrowcell="true" allowcellValid="true" >
        <div property="columns">
            <div type="indexcolumn">
            </div>
            <div type="checkcolumn">
            </div>
   
             <div type="comboboxcolumn" autoShowPopup="true" name="RPTD_Type" field="RPTD_Type" width="100" allowSort="true"  align="center" headerAlign="center">成色
                <input property="editor" class="mini-combobox" style="width:100%;" data="Types" />               
            </div>

            <div name="RPTD_Init" field="RPTD_Init" headeralign="center" allowsort="true" width="150">
                期初结存
                <input property="editor" class="mini-textbox" style="width: 100%;" minwidth="200" onvaluechanged="sum" />
            </div>
            <div name="RPTD_HkCome" field="RPTD_HkCome" headeralign="center" allowsort="true"
                width="150">
                HK入库收金
                <input property="editor" class="mini-textbox" style="width: 100%;" minwidth="200" onvaluechanged="sum"/>
            </div>
            <div name="RPTD_CnCome" field="RPTD_CnCome" headeralign="center" allowsort="true"
                width="150">
                CN入库收金
                <input property="editor" class="mini-textbox" style="width: 100%;" minwidth="200" onvaluechanged="sum"/>
            </div>

            <div name="RPTD_HkOUT" field="RPTD_HkOUT" headeralign="center" allowsort="true"
                width="150">
                发金HK
                <input property="editor" class="mini-textbox" style="width: 100%;" minwidth="200" onvaluechanged="sum"/>
            </div>

            <div name="RPTD_CnOut" field="RPTD_CnOut" headeralign="center" allowsort="true"
                width="150">
                发金CN
                <input property="editor" class="mini-textbox" style="width: 100%;" minwidth="200" onvaluechanged="sum"/>
            </div>
            <div name="RPTD_End" field="RPTD_End" headeralign="center" allowsort="true"
                width="150">
                期末结存
                <input property="editor" class="mini-textbox" style="width: 100%;" minwidth="200" />
            </div>
            <div name="RPTD_Date" field="RPTD_Date" width="100" allowsort="true" dateformat="yyyy-MM-dd" vtype="required">
                日期
                <input property="editor" class="mini-datepicker" style="width: 100%;" />
            </div>
        </div>
js
//自动求和
function sum() {
    var row = null;
    setTimeout(function () {
        row = grid.getSelected();
        var init = (row.RPTD_Init == "" || row.RPTD_Init == undefined) ? 0 : row.RPTD_Init;
        var hkcom = (row.RPTD_HkCome == "" || row.RPTD_HkCome == undefined) ? 0 : row.RPTD_HkCome;
        var cncome = (row.RPTD_CnCome == "" || row.RPTD_CnCome == undefined) ? 0 : row.RPTD_CnCome;
        var hkout = (row.RPTD_HkOUT == "" || row.RPTD_HkOUT == undefined) ? 0 : row.RPTD_HkOUT;
        var cnout = (row.RPTD_CnOut == "" || row.RPTD_CnOut == undefined) ? 0 : row.RPTD_CnOut;
        row.RPTD_End = parseFloat(init) + parseFloat(hkcom) + parseFloat(cncome) - parseFloat(hkout) - parseFloat(cnout);
    }, 100)
   
}

作者: lt2017    时间: 2017-7-13 10:36:48

felt 发表于 2017-7-10 12:38
请贴出具体代码,你的编辑器是什么编辑器,显示的值和编辑器里的值分别是什么 ...

[attach]9491[/attach][attach]9489[/attach]

作者: dforce    时间: 2017-7-13 13:40:48

lt2017 发表于 2017-7-13 10:36

请参tf示例来实现你这样的功能
http://www.miniui.com/demo/#src=datagrid/drawcell2.html
需要把数据更新到行数据里面的话,需要加一行代码
  function onDrawCell(e) {
            var record = e.record;

            if (e.field == "total") {
                var price = record.price;
                var quantity = record.quantity;
                e.cellHtml = price * quantity;
                e.record.total=proce*quantuty;
            }

        }




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