jQuery MiniUI

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

求教DataGrid的行编辑的问题 [复制链接]

Rank: 2

跳转到指定楼层
楼主
发表于 2014-2-10 23:58:56 |只看该作者 |倒序浏览
本帖最后由 XTX827227881 于 2014-2-11 00:00 编辑


现有这么一个页面,设计的是先选择收费类别,然后在在下面表格中CRUD收费设置。
实例操作一:(新增,并选择收费项目)

实例操作二:(新增,并选择收费项目)

问题出来了,

原本实例操作二,出现的应该是上面的收费项目才对,可是在经过实例操作一后,再进行实例操作二,就不能正确显示。
求大侠帮忙看看,附上页面源码。

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

Rank: 8Rank: 8

沙发
发表于 2014-2-11 09:42:02 |只看该作者
下拉选项不正确,说明你下拉选项的后台返回的数据不正确

后台断点调试看为什么返回不对

Rank: 2

板凳
发表于 2014-2-11 09:56:54 |只看该作者
factory 发表于 2014-2-11 09:42
下拉选项不正确,说明你下拉选项的后台返回的数据不正确

后台断点调试看为什么返回不对 ...

原因是这样子的,当第一次新增收费设置时(combobox会向后台请求数据),但是变换了收费类别后再新增(Combobox就不再向后台请求数据了),原因不在后台,在前台的单元编辑Combobox

Rank: 8Rank: 8

地板
发表于 2014-2-11 10:24:40 |只看该作者
XTX827227881 发表于 2014-2-11 09:56
原因是这样子的,当第一次新增收费设置时(combobox会向后台请求数据),但是变换了收费类别后再新增(Co ...

监听oncellbeginedit事件

e.editor.load(url)让你的combobox编辑器重新加载下数据

Rank: 2

5#
发表于 2014-2-14 20:08:32 |只看该作者
本帖最后由 XTX827227881 于 2014-2-14 20:10 编辑
factory 发表于 2014-2-11 10:24
监听oncellbeginedit事件

e.editor.load(url)让你的combobox编辑器重新加载下数据


用了你给提供的方法,确实能解决上面的问题,但是使用后新的问题又来了。
第一次查询界面,显示如下:

第二次查询界面,显示如下:

看了这两次界面,我想你都看出问题了。第二次原本要显示的东西没了。
查找了官方提供的Api,尝试用preload去解决也失败了。我想了很久发现,如果官方能够提供一个方法刷新DataGrid里的架构或者让其重载一下的话,这个问题就解决了。
不知道,官方能给出什么建议呢?谢谢
界面代码

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

Rank: 8Rank: 8

6#
发表于 2014-2-17 10:46:16 |只看该作者
XTX827227881 发表于 2014-2-14 20:08
用了你给提供的方法,确实能解决上面的问题,但是使用后新的问题又来了。
第一次查询界面,显示如下:

e.editor.load(url) 只是编辑器,也就是你的combobox重新加载下数据而已,编辑器的数据跟表格的数据是不相关的,是不是你做了其他的处理,导致表格数据没了

Rank: 2

7#
发表于 2014-2-17 15:34:29 |只看该作者
factory 发表于 2014-2-17 10:46
e.editor.load(url) 只是编辑器,也就是你的combobox重新加载下数据而已,编辑器的数据跟表格的数据是不相 ...

我的设计是这样的,系统里一个收费类别对应着很多收费项目,不同的收费类别对应的收费项目不一样(至少关键信息ID不一样),所以当第一次按照收费类别查找收费设置时,可以查出来,并且全部显示正确。但是当你再选择其他的时候,错误就出现了,然而学生类别又正常显示出来,但其他的就没有显示出来。
我分析原因在,你公司在设计DataGrid的时候,当第一次加载DataGrid数据时,自动的就创建了editor的那些编辑器,通过XHR分析原理也是这样。
但是,我希望的是当我每次选择不同的收费类别editer的那些编辑器的数据能够重新载入。这样问题就可以解决了。或者请问你还有其他方法么,请告之,谢谢。

Rank: 8Rank: 8

8#
发表于 2014-2-17 16:04:07 |只看该作者
XTX827227881 发表于 2014-2-17 15:34
我的设计是这样的,系统里一个收费类别对应着很多收费项目,不同的收费类别对应的收费项目不一样(至少关 ...

监听oncellbeginedit="assd"

function assd(e) {
            var index = grid.indexOf(e.record);
            if (index == 6) {
                e.editor.load("../data/listTree.txt");
            } else {
                e.editor.load("../data/countrys.txt");
            }
        }

下面是截图

第7行数据的下拉数据这样


其他的下拉数据:




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

Rank: 2

9#
发表于 2014-2-17 16:31:11 |只看该作者
factory 发表于 2014-2-17 16:04
监听oncellbeginedit="assd"

function assd(e) {

您没有理解我的问题。
你这种方法,我已经成功的运用,并且解决掉编辑的问题。
但是,现在的问题在于,第一次选择收费类别显示正常,但是第二次选择收费类别就显示不全。
第一次选择收费类别,界面:
第二次选择收费类别,界面:

请注意两次选择的收费类别不同。第二次就不能正确显示,但是是有数据的。
问题的原因:
你公司在设计DataGrid的时候,当第一次加载DataGrid数据时,自动的就创建了editor的那些编辑器,通过XHR分析原理也是这样。
我希望的是当我每次选择不同的收费类别editer的那些编辑器的数据能够重新载入。这样问题就可以解决了。或者请问你还有其他方法么,请告之,谢谢。
附件: 你需要登录才可以下载或查看附件。没有帐号?立即注册

Rank: 8Rank: 8

10#
发表于 2014-2-17 17:05:29 |只看该作者
XTX827227881 发表于 2014-2-17 16:31
您没有理解我的问题。
你这种方法,我已经成功的运用,并且解决掉编辑的问题。
但是,现在的问题在于,第 ...

你的收费类别的combobox,和表格是什么关系?

表格的数据 是根据 combobox的选中值去加载? 然后换成2016年的时候,表格的数据加载就不对了?还是什么?

如果是关联的话,你可以这样做
var value = combobox.getValue();
grid.load({key:value})

后台request key, 然后获得到value之后,去查询对应的表格数据

Archiver|普加软件

GMT+8, 2025-7-14 09:47 , Processed in 1.054221 second(s), 10 queries .

Powered by Discuz! X2

© 2001-2011 Comsenz Inc.

回顶部