Datacell实现级联解决方法
问题描述如下:
DATACELL中如何实现级联下拉框?请问有办法实现吗?
客户这边有个培训反馈表,很想用我们EOS的DATACELL实现,可是问题是表中有级联下拉框,通常遇到这样有级联字段的表,都是采用单表来实现,不知道DATACELL中有没有什么办法能实现呢?
问题分析:
问题中涉及到两个知识点:
1.获取datacell选中下拉列表框的值,其中下拉列表数据来源又分以下几种:
(1)业务 字典、(2)数据库表、(3)页面上手工编写 。
2.刷新datacell中级联的下拉列表框
解决办法:
可以分以下几步来做:
第一步:为richclient:optionTable标签增加onclick事件,参考代码如下:
<richclient:optionTable onclick="getCITY" tableId="optionsTableCITY"
action="mydatacell.biz.bizCityQuery" xpaths="list[@type='REPORT_CITY']" width="100" height="100">
注意:onclick事件调用javascript函数getCITY的写法,不要写成getCITY()
第二步:编写javascript函数getCITY,下面以下拉列表取自数据库表方式为例进行说明 ,其他方式类似。参考代码如下:
function getCITY(entity){
//获取dacecll选中下拉列表框的值,其中ID为下拉列表编码列的字段名
var valueID=entity.getProperty("ID");
//根据参数改变Datacell下拉列表的内容,以下代码optionsTableSHIPCITY为要刷新的
级联下拉列表的ID,
//清除下拉列表原来的数据
optionsTableSHIPCITY.dataset.entities = null;
optionsTableSHIPCITY.dataset.removedEntities = null;
delete optionsTableSHIPCITY.dataset.entities;
delete optionsTableSHIPCITY.dataset.removedEntities;
optionsTableSHIPCITY.dataset.entities = new EntityList();
optionsTableSHIPCITY.dataset.removedEntities = new EntityList();
//构造下拉列表的查询条件XML串
bizParam = "<REPORT_CITY><ID>" + valueID+"</ID></REPORT_CITY>";
//查询下拉列表的业务逻辑
bizAction='mydatacell.biz.bizCityQuery';
//刷新下拉列表框
optionsTableSHIPCITY.dataset.loadData( bizAction, bizParam, xpaths, 0, 10
);
}
- 上一篇:JSP页面中textarea显示大数据并换行显示[ 10-14 ]
- 下一篇:JBoss Session经验技巧总结[ 10-14 ]