jQuery MiniUI

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

Combobox 动态加载数据的问题 [复制链接]

Rank: 2

跳转到指定楼层
楼主
发表于 2014-10-29 15:52:16 |只看该作者 |倒序浏览
datagrid的单元格编辑器使用Combobox,数据是动态加载的(由于下拉的数据会随时更改,所以每次单元格开始编辑时,重新加载combobox的数据)。现在问题来了,在单元格中可以选择新添加的项(新数据是加载成功了的),但是结束单元格的编辑后,不能看到显示的文本,鼠标再点进去还是可以看到选择的项。

这是datagrid的列,
  1. <div field="parent_id" type="comboboxcolumn" width="90" allowsort="true" headeralign="center" align="center">    父级                          <input property="editor" valuefield="mod_id" textfield="mod_name" class="mini-combobox" style="width: 100%;"        url="../ajax/admin/GetForeMenu.ashx" allowinput="true" valuefromselect="true" /></div>
复制代码
在datagrid上绑定了事件:oncellbeginedit="cellbeginedit"
  1. function cellbeginedit(e) {
  2.     if (e.field == 'parent_id') {
  3.         var editor = e.editor;
  4.         // 加载数据方式1
  5.         //editor.load(editor.getUrl());

  6.         // 加载数据方式2
  7.         //editor.setUrl(editor.getUrl());

  8.         // 加载数据方式3
  9.         //$.ajax({              
  10.         //    url: editor.getUrl(),
  11.         //    cache: false,
  12.         //    async: false,
  13.         //    success: function (data) {
  14.         //        editor.setData(data.data);
  15.         //    }
  16.         //})
  17.     }
  18. }
复制代码

我测试了,独立使用(不作为datagrid的编辑器)是没有问题的。请问哪里不对呢?

Rank: 8Rank: 8

沙发
发表于 2014-10-29 15:54:57 |只看该作者
type="comboboxcolumn"去掉,加上一个displayField用于显示

Rank: 2

板凳
发表于 2014-10-29 16:04:33 |只看该作者
dforce 发表于 2014-10-29 15:54
type="comboboxcolumn"去掉,加上一个displayField用于显示

displayField 的设置和 combobox 有什么关系 ?
我现在是通过使 parent_id 列的值与 combobox 的项匹配来显示的,显示的文本直接就是combobox的匹配项的文本了,combobox的数据源其实就是这个表格本身的数据。。  不知道这个displayField应该这么写。。

Rank: 8Rank: 8

地板
发表于 2014-10-29 16:10:12 |只看该作者
hyjiacan 发表于 2014-10-29 16:04
displayField 的设置和 combobox 有什么关系 ?
我现在是通过使 parent_id 列的值与 combobox 的项匹配来 ...

displayField对应文本,field对应值

Rank: 2

5#
发表于 2014-10-29 16:14:25 |只看该作者
dforce 发表于 2014-10-29 16:10
displayField对应文本,field对应值

datagrid 有列:
mod_id, mod_name, parent_id

现在parent_id使用的编辑器是combobox,编辑器的数据也来自datagrid的url ,也就是 combobox 的valueField为mod_id,textField=mod_name

我想每次修改保存了datagrid,combobox的数据就能更新,请问这样该怎么配置呢?

Rank: 8Rank: 8

6#
发表于 2014-10-29 16:29:24 |只看该作者
hyjiacan 发表于 2014-10-29 16:14
datagrid 有列:
mod_id, mod_name, parent_id

你要做什么
最好提供一个html示例和数据来说明你的需求

Rank: 2

7#
发表于 2014-10-29 16:46:38 |只看该作者
dforce 发表于 2014-10-29 16:29
你要做什么
最好提供一个html示例和数据来说明你的需求

嗯  我去弄个demo传上来

Rank: 2

8#
发表于 2014-10-30 09:40:29 |只看该作者
dforce 发表于 2014-10-29 16:29
你要做什么
最好提供一个html示例和数据来说明你的需求




添加新数据,以作为被选择的父级:

保存新添加的数据后,通过grid.reload()刷新,在开始编辑“父级”列时,从服务器加载新的列表数据:


选择后,结束编辑,但是单元格没有显示选择的项:


而测试选择以前添加的项,是可以显示的:


现在就是想要在不刷新页面的情况下,每次保存了表格中的数据后,点击“父级”下拉选择框,都可以正确选择新添加的数据项。
现在的问题是,选择了但不能显示出来,保存也能成功,这说明是选择了的,只是没有显示应该显示的文字。

求帮助,QQQ。

这是.net的demo,.net版本: 3.5,MSSQL 2008


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

Rank: 8Rank: 8

9#
发表于 2014-10-30 10:25:24 |只看该作者
hyjiacan 发表于 2014-10-30 09:40
添加新数据,以作为被选择的父级:

保存新添加的数据后,通过grid.reload()刷新,在开始编辑“父级” ...

<div field="pid" displayField="xx" width="90" allowsort="true" headeralign="center" align="center">
                        父级

这样改一下看看

Rank: 2

10#
发表于 2014-10-30 10:38:50 |只看该作者
felt 发表于 2014-10-30 10:25
父级

这样改一下看看

换displayField是可以了,但是使用comboboxcolumn为什么就不可以呢“?

Archiver|普加软件

GMT+8, 2024-11-15 20:59 , Processed in 1.052121 second(s), 11 queries .

Powered by Discuz! X2

© 2001-2011 Comsenz Inc.

回顶部