FineUI 官方论坛

标题: Grid增删改行时,获取不到status:是deleted的值 [打印本页]

作者: 甘桂    时间: 2016-3-11 15:48
标题: Grid增删改行时,获取不到status:是deleted的值
在进行数据处理过程中,GRID行增加删除修改
JArray mergedData = Grid1.GetMergedData();

            foreach (JObject mergedRow in mergedData)
            {
                string status = mergedRow.Value<string>("status");

                int rowIndex = mergedRow.Value<int>("index");
                int CaseID = Convert.ToInt32(Grid1.DataKeys[rowIndex][0]);//获取选中行的表ID
                if (status == "newadded")
               {  INSERT INTO }
               if (status == "modified")
               { UPDATE  }
               if (status == "deleted")
              { DELETE  }
             }


我在页面中对表格进行增加行与编辑行是正常的 ,删除其中一行后,
        status:的值是unchanged是怎么回事?





作者: 甘桂    时间: 2016-3-12 15:48
没有人能回答?
作者: 甘桂    时间: 2016-3-16 10:20
问也没有人回答,三石忙专业版了。在删除数据时Grid1.GetMergedData()输出 status值时的确为unchanged。改成Grid1.GetModifiedData()问题搞定,主要是示例中输入表格编辑内容用的是GetModifiedData()。这二者是有差别的,不信都可以看看源码......
不知道是BUG还是有意这样的。
作者: 甘桂    时间: 2016-3-16 10:42
修改过后,问题又来了。
现在用Grid1.GetModifiedData()可以增加,删除数据,但是输出后主要获取哪行哪列数据的更改。如果仅是编辑某个字段,在处理UPDATE时比较麻烦,因为没有编辑的字段是NULL.
Grid1.GetMergedData()输出后是获得整个表格的所有行列数据,不够是否更改。唯一缺点是存在BUG:在删除数据时status值时的确为unchanged
。这个就有办法解决这方面的问题了。

作者: sanshi    时间: 2016-3-16 10:51
甘桂 发表于 2016-3-16 10:42
修改过后,问题又来了。
现在用Grid1.GetModifiedData()可以增加,删除数据,但是输出后主要获取哪行哪列数 ...

GetMergedData()返回的是当前页面上的整个数据集合,不要管那个 status ,这个没意义
作者: 甘桂    时间: 2016-3-17 09:03
sanshi 发表于 2016-3-16 10:51
GetMergedData()返回的是当前页面上的整个数据集合,不要管那个 status ,这个没意义 ...

修改数据时.GetModifiedData()返回仅是修改的字段值,没有修改部分为空的,如果在这个条件下直接对SQL UPDATE操作,写起代码会很麻烦的。





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