jQuery MiniUI

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

请教!drawcell,怎么给comboboxcolumn加一个链接? [复制链接]

Rank: 2

跳转到指定楼层
楼主
发表于 2014-3-5 09:22:53 |只看该作者 |倒序浏览
请问,怎么在这个表格上给“计划名称”这个列上加一个”超链接“?
首先这个”ascplanperiodId“是个编号,其中里面的”mini-comboboxcolumn“是通过‘ascplanperiodId’这个编号,从后台查询出的动态数据,也就是要显示“ascplanperiodName”。
最后我怎么可以通过drawcell给它加上超链接,显示的文本是“ascplanperiodName”。我试了好多种方式都没有做好。望稍做详细。谢谢!

<div id="ascplan_datagrid" class="mini-datagrid" showFilterRow="true"
        style="width: auto; height: 300px" allowResize="false"
        url="${ctx}/service/ascplanworkflow/allascplan" idField="id" multiSelect="true">               <div property="columns">
               <div type="checkcolumn"></div>
               <div field="ascplanperiodId" type="comboboxcolumn" allowSort="true" headerAlign="center" align="center" allowSort="true">计划名称
                        <input property="editor" id = "cc" class="mini-combobox" textField="ascplanperiodName"                                                               valueField="ascplanperiodId"   url="${ctx}/service/ascplanPeriod/gets" readonly="readonly" />
                </div>
</div>

Rank: 8Rank: 8

沙发
发表于 2014-3-5 09:35:07 |只看该作者
1.把你的下拉框的数据combodata一次性取出来,并且发送给前台. 前台ondrawcell 的时候,判断e.value, 从combodata中找出对应的ascplanperiodName,e.cellHTML = '<a href=.....>ascplanperiodName</a>'

2. 在后台把ascplanperiodId相关联的ascplanperiodName获取出来,给到表格行数据中的displayField
比如,你的行数据{name:"1",age:2,country:"cn"}, 另外给他加一个字段名,字段名任意取,比如我加成这样
{name:"1",age:2,country:"cn",ascplanperiodText:"ascplanperiodName"}
然后再把这个数据从后台返回给表格,表格的这个列,也不能使用type="comboboxcolumn"了,而是写成这样
field="ascplanperiodId" displayField="ascplanperiodText"
ondrawcell的时候,e.cellHTML = '<a href=.....>e.record.ascplanperiodText</a>'

上面2种做法任意用一个,千万不要边ondrawcell,边去后台加载对应的ascplanperiodName,因为ondrawcell是每个单元格都会触发,这样做会使得前后台交互太过于频繁

Rank: 2

板凳
发表于 2014-3-5 10:19:35 |只看该作者
factory 发表于 2014-3-5 09:35
1.把你的下拉框的数据combodata一次性取出来,并且发送给前台. 前台ondrawcell 的时候,判断e.value, 从combo ...

你好!
你说的第二种方式,我大概懂,也就是 额外的写一个ajax通过ascplanperiodId返回与之对应的一个ascplanperiodName,是吗?
这个ajax是写在ondrawcell里面是吧,因为每一行都会有一个不同的ascplanperiodId。

Rank: 8Rank: 8

地板
发表于 2014-3-5 11:05:55 |只看该作者
TangC 发表于 2014-3-5 10:19
你好!
你说的第二种方式,我大概懂,也就是 额外的写一个ajax通过ascplanperiodId返回与之对应的一个asc ...

不是,你说的这种就是我不建议你这么做的方式了

我说的第二种,是数据的关联查询和处理,都在后台完成之后,再返回给前台表格.

比如你在后台,id是1,这是表格数据的, text是2,这是combobox数据的, 你可以在后台循环表格数据,把id对应的text查出来,再添加到表格数据中,完了,再返回给表格数据,这样表格数据有id和text,都有了,直接ondrawcell的时候e.record就能获取到text. 不需要再去后台交互

如果你说的那样,ondrawcell是一个单元格就触发一次的, 如果单元格过多,那么交互次数也就过多,前后台交互太频繁,是不建议的

Archiver|普加软件

GMT+8, 2024-9-29 11:33 , Processed in 1.036910 second(s), 10 queries .

Powered by Discuz! X2

© 2001-2011 Comsenz Inc.

回顶部