jQuery MiniUI

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

datagrid中combobox问题 [复制链接]

Rank: 3Rank: 3

跳转到指定楼层
楼主
发表于 2013-5-22 09:03:46 |只看该作者 |倒序浏览
我建了个datagrid,比如[img=0,1]file:///C:\Documents and Settings\Administrator\Application Data\Tencent\Users\408995448\QQ\WinTemp\RichOle\YW3_I[AJI4G28S)LPJ90~_3.jpg[/img]比如员工账号为combobox类型,我想选择combobox中A的时候,此时性别这一列会显示一个按钮,按钮名为A,可以点击。这样的操作怎么弄啊?

[img]file:///C:\Documents and Settings\Administrator\Application Data\Tencent\Users\408995448\QQ\WinTemp\RichOle\YW3_I[AJI4G28S)LPJ90~_3.jpg[/img]


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

Rank: 8Rank: 8

沙发
发表于 2013-5-22 09:37:42 |只看该作者
<div field="gender" renderer="tobutton">性别

function tobutton(e) {
            if (e.value == "A") {
                var html = '<input type="button" value="确定"/>'
                return html;
            }
        }

Rank: 3Rank: 3

板凳
发表于 2013-5-22 10:08:35 |只看该作者
factory 发表于 2013-5-22 09:37
性别

function tobutton(e) {

请问下renderer都是在什么地方用到啊

Rank: 8Rank: 8

地板
发表于 2013-5-22 10:17:51 |只看该作者
jifeng 发表于 2013-5-22 10:08
请问下renderer都是在什么地方用到啊

列上,在你需要修改单元格显示内容的那一列上

如果你需要做多列多种效果的话,可以直接监听ondrawcell事件,如果只是一列的话,可以使用列的renderere

参考demo:http://www.miniui.com/demo/#src=datagrid/drawcell.html

Rank: 3Rank: 3

5#
发表于 2013-5-22 10:54:05 |只看该作者
factory 发表于 2013-5-22 10:17
列上,在你需要修改单元格显示内容的那一列上

如果你需要做多列多种效果的话,可以直接监听ondrawcell事 ...

renderer="tobutton"这个是不是应该放在员工账号这一列的DIV内啊,他不是监听员工账号这一列的值变化吧

Rank: 8Rank: 8

6#
发表于 2013-5-22 10:59:32 |只看该作者
jifeng 发表于 2013-5-22 10:54
renderer="tobutton"这个是不是应该放在员工账号这一列的DIV内啊,他不是监听员工账号这一列的值变化吧 ...

写在列的div上门,我上面代码不是已经给出了吗?<div field="gender" renderer="tobutton">性别 他会进行对单元格的一个渲染

Rank: 3Rank: 3

7#
发表于 2013-5-22 11:08:05 |只看该作者
本帖最后由 jifeng 于 2013-5-22 11:12 编辑
factory 发表于 2013-5-22 10:59
写在列的div上门,我上面代码不是已经给出了吗?性别 他会进行对单元格的一个渲染 ...

我的意思是e.value == "A"这个是监听的第一列的值,是不是吧renderer写在第一列的div上?如果放在性别这一列,应该监听的是性别这一列的值把?是这样吗》?
<div field="gender" renderer="tobutton">性别
这是监听的性别的值把?
如果这样写 <div  field="loginname" renderer="tobutton">员工账号,我觉得这样e.value == "A"才能监听这一列的值吧?

Rank: 8Rank: 8

8#
发表于 2013-5-22 11:15:44 |只看该作者
jifeng 发表于 2013-5-22 11:08
我的意思是e.value == "A"这个是监听的第一列的值,是不是吧renderer写在第一列的div上?如果放在性别这一 ...

你放到哪里一列上,就是最这一列的所有单元格进行一个渲染

e.value == "A" 就是单元格的值

如果为A,就改成button

Rank: 3Rank: 3

9#
发表于 2013-5-22 11:37:03 |只看该作者
本帖最后由 jifeng 于 2013-5-22 12:33 编辑
factory 发表于 2013-5-22 11:15
你放到哪里一列上,就是最这一列的所有单元格进行一个渲染

e.value == "A" 就是单元格的值

e.value == "A" 是不是监听一行的所有单元格的值,只要一行有为A的就会执行渲染,e.value == "A"不能监听某一列的值吗?比如表格中,员工账号->A,住址-->A,性别进行渲染,假如员工账号为B,住址为A,那我不让他渲染呢?就是说我只监听员工账号的值,不对其他列监听,应该怎么弄?

Rank: 8Rank: 8

10#
发表于 2013-5-22 13:13:59 |只看该作者
本帖最后由 factory 于 2013-5-22 13:15 编辑
jifeng 发表于 2013-5-22 11:37
e.value == "A" 是不是监听一行的所有单元格的值,只要一行有为A的就会执行渲染,e.value == "A"不能监听 ...

var record= e.record   //当前单元格所处的整行的数据

if(record.name == "A" && record.address == "A"){
       e.cellHtml =....
}

这样试试

Archiver|普加软件

GMT+8, 2024-11-28 15:44 , Processed in 1.068205 second(s), 11 queries .

Powered by Discuz! X2

© 2001-2011 Comsenz Inc.

回顶部