前不久habody问了我一个问题,就是如何实现以下的功能:
一整列只能选择某一行记录,我个人认为用dorado以后,可以不用这样子的功能,因为datatable点击本来就是选择某一行.
不过说归说,实现如下:
方式一:
1:在dataset里加入select字段
代码如下:
<Field name="select" type="Dummy" dataType="boolean" defaultValue="1">
<Properties />
</Field>
2,在与dataset绑定的datatable里加入column,代码如下:
<Column name="field1" field="select" dropDown="dropdown1" editorType="radiogroup" rendererType="radiogroup" />
3,加入一个ListDropDo
<Control id="dropdown1" type="ListDropDown" mapValue="true">
<DropDownItem value="1" />
</Control>
可以在column的onRefresh事件里实现预先选中某行记录的单选按钮
以上方式是一种假单选效果.
现在介绍方式二:
1:在dataset里加入select字段
代码如下:
<Field name="select" type="Dummy" dataType="boolean" defaultValue="1">
<Properties />
</Field>
2,
在与dataset绑定的datatable里加入column,代码如下:
<Column name="field1" field="select" readOnly="true">
<Events>
<Event name="onRefresh">var roleid=record.getValue("ROLE_ID");
if(roleid=="ff808081197f6fdc01197f8c79b70051")//此处可以读取设定的预选选中的某条记录
{
cell.innerHTML ="<center><input type=/"radio/" name=/"select/" value=/""+roleid+"/" checked οnclick=/"doclick(this.value)/" /></center>";}
else{
cell.innerHTML ="<center><input type=/"radio/" name=/"select/" value=/""+roleid+"/" οnclick=/"doclick(this.value)/" /></center>";
}
return false;</Event>
</Events>
</Column>
这样就可以实现效果了,如果要在单击单选时触发JS事件,可以像下面这样子写:
然后在function里定义doclick()就行了.
function doclick(roleid){
alert(roleid);
}