jQuery MiniUI

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

使用grid.getSelected()获取到的是数据改变之前的值 [复制链接]

Rank: 2

跳转到指定楼层
楼主
发表于 2017-7-8 12:29:37 |只看该作者 |倒序浏览
使用grid.getSelected()获取到的行数据是改变之前的,怎么获取改变之后的。

Rank: 8Rank: 8

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

Rank: 2

板凳
发表于 2017-7-8 14:16:19 |只看该作者
dforce 发表于 2017-7-8 13:34
这和行数据改变不改变没有什么关系,grid.getSelected()获取到的是当前选中行。 ...


valuechanged 事件中使用 grid.getSelected().属性 获取的是改之前的旧值,有什么方式获得更改之后的值吗

Rank: 8Rank: 8

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

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

Rank: 2

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

问题是解决了,可是显示的值和编辑器里的值不一致

Rank: 8Rank: 8

6#
发表于 2017-7-10 12:38:52 |只看该作者
lt2017 发表于 2017-7-10 10:47
问题是解决了,可是显示的值和编辑器里的值不一致

请贴出具体代码,你的编辑器是什么编辑器,显示的值和编辑器里的值分别是什么

Rank: 2

7#
发表于 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)
   
}

Rank: 2

8#
发表于 2017-7-13 10:36:48 |只看该作者
felt 发表于 2017-7-10 12:38
请贴出具体代码,你的编辑器是什么编辑器,显示的值和编辑器里的值分别是什么 ...


附件: 你需要登录才可以下载或查看附件。没有帐号?立即注册

Rank: 8Rank: 8

9#
发表于 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;
            }

        }

Archiver|普加软件

GMT+8, 2024-9-20 11:45 , Processed in 1.044978 second(s), 10 queries .

Powered by Discuz! X2

© 2001-2011 Comsenz Inc.

回顶部