最近在整合datacell里面使用了lookup选择数据,在显示的时候显示的是序号没有直接显示名称的解决方案:
前提:
Student
sid name classid class(Class对象名)
Class
classid name
总体思路:
对Student进行datacell显示, 编号,姓名,班级
在整个datacell里面增加一个隐藏的cell为id:如下
<r:datacell id="cell1" .....
<r:field fieldName="id" label="编号">
<h:text />
</r:field>
<r:field fieldName="name" label="姓名">
<h:text />
</r:field>
<r:field fieldName="class/classid" label=".." width="0">
<h:text />
</r:field>
<r:field fieldName="class/name" label="班级
" editId="indexedit">
<w:lookup id="indexedit" lookupUrl="..." onReturnFunc="returnfun"/>
</r:field>
关键在returnfun的写法
function returnfun(arg){
$lookup = $id("indexedit");
lookup.value = arg[1];
lookup.displayValue = arg[1];
var row = $id("cell1").getActiveRow();
var entity = $id("cell1").getEntity(row);
entity.setProperty("class/classid",arg[0]);
entity.setProperty("class/name",arg[1]);
$id("cell1").refreshRow(row);
return false;
}
前提:
Student
sid name classid class(Class对象名)
Class
classid name
总体思路:
对Student进行datacell显示, 编号,姓名,班级
在整个datacell里面增加一个隐藏的cell为id:如下
<r:datacell id="cell1" .....
<r:field fieldName="id" label="编号">
<h:text />
</r:field>
<r:field fieldName="name" label="姓名">
<h:text />
</r:field>
<r:field fieldName="class/classid" label=".." width="0">
<h:text />
</r:field>
<r:field fieldName="class/name" label="班级
" editId="indexedit">
<w:lookup id="indexedit" lookupUrl="..." onReturnFunc="returnfun"/>
</r:field>
关键在returnfun的写法
function returnfun(arg){
$lookup = $id("indexedit");
lookup.value = arg[1];
lookup.displayValue = arg[1];
var row = $id("cell1").getActiveRow();
var entity = $id("cell1").getEntity(row);
entity.setProperty("class/classid",arg[0]);
entity.setProperty("class/name",arg[1]);
$id("cell1").refreshRow(row);
return false;
}