operamasks 中w:dataGrid的getSelectedValues() 获取的值为空解决办法

    昨天在使用dataGrid控件时获取选择的数据返回空值,前端代码:

<w:dataGrid paged="true" rows="20" id="grid" var="data" toolBarPosition="top" idColumn="id" singleSelect="true" selectionModel="#{constantBean.checkBox}">
    <w:outputColumn id="id" header="ID" value="#{data.id}" hidden="true" />
    <w:outputColumn header="授权对象" id="masterName" width="220" />
    <w:outputColumn header="访问对象" id="accessName" width="220" />                        
    <w:outputColumn header="是否授权" id="isAuthorized"/>
    <w:outputColumn header="类型" id="typeName" />
    <w:outputColumn id="createDate" header="创建时间" width="139" converter="dateConverter"></w:outputColumn>
    <w:outputColumn id="createUser" header="创建人" width="86"></w:outputColumn>
    <w:outputColumn id="lastModifyDate" header="最后修改时间" width="144" converter="dateConverter"></w:outputColumn>
    <w:outputColumn id="lastModifyUser" header="最后修改人" width="119"></w:outputColumn>
    <w:pagingToolbar displayInfo="false">
        <w:button id="add" image="../resources/images/new.gif" value="添加" />
        <w:button id="modify" image="../resources/images/modify.png" value="修改" />
        <w:button id="delete" onclick="if (!confirm('你确定要删除吗?')) {return false };" image="../resources/images/delete.gif" value="删除" />
    </w:pagingToolbar>
</w:dataGrid>

 

 后台代码:

	@SaveState
	@DataModel(id = "grid")
	private List<FuncPrivilege> gridData;

	@Init("gridData")
	public void initGridData()
	{
		log.debug("initGridValue invoke");
		gridData = funcPrivilegeService.getResources("0");
	}

 

后来发现datagrid的页面定义有问题:idColumn="id", 把这个属性的定义取消掉,getSelectedValues就可以获取选择的对象信息了。

 

另外要注意的地方:在使用GridDataProvider作为数据源的时候,必须使用 idColumn="id" 来定义grid标签,这样才不会使getSelectValue()方法出问题!!!

 

详细的原理参考:http://www.operamasks.org/forum/viewthread.php?tid=6804

 

 

posted on 2012-05-04 09:08  ekisstherain  阅读(1006)  评论(0编辑  收藏  举报