easyui的datagrid的某个field的取值是一个数组,如何利用formatter循环设置field和显示...

页面显示效果:

095237_IyKg_2331760.png

html页面设置datagrid的field字段:

userList是从struts2传到前台的一个集合,该集合是用户的集合,每个用户有一个消耗,field根据userList来设置多个消耗字段

<s:iterator value="userList" id="user" status='s'>
  	<s:if test="(#s.index+1)==userList.size()">
		<th field="consumptions<s:property value='%{#s.index+1}'/>" width="75" sortable="false" align="center" editor="{type:'numberbox',options:{precision:3}}" 
			formatter="consumption2Formatter">终审<s:hidden uname='%{#user.id}' value="%{#user.id}" theme="simple"/></th>
  	</s:if>
  	<s:else>
		<th field="consumptions<s:property value='%{#s.index+1}'/>" width="75" sortable="false" align="center" editor="{type:'numberbox',options:{precision:3}}" 
			formatter="consumption2Formatter"><s:property value="#s.index+1"/>审<s:hidden uname='%{#user.id}' value="%{#user.id}" theme="simple"/></th>
  	</s:else>
</s:iterator>

在JS中formatter函数的设置:(在userList中的每个用户对应的消耗的格式为:1审,2审...,最后面为终审,这里是根据1,2...在consumption2Formatter中设置索引值,来获取row.consumptions中取值,row.consumptions是每个用户的消耗集合,它是一个数组,和userList集合对应)

/**
 * 从row的consumptions中根据索引值num取对应的消耗值
 */
function consumption2Formatter(value, row,rowIndex){
	var title = this.title;
	title = title.substring(0,title.indexOf("审"));
	var num = title.replace(/[^0-9]/ig,"");
	if(!num || num==""){
		//表明为终审
		num = row.consumptions[row.consumptions.length-1];
	}else{
		num = row.consumptions[parseInt(num)-1];
	}
	return num;
}

easyui的datagrid的双击事件:

onDblClickCell: function(rowIndex, field, value){
}

如果利用formatter设置显示的内容的时候,在该事件中会发现value为undefined,那么在onDblClickCell函数中如何获取单元格的实际值呢?

/**
 * @table datagrid的id字符串
 * @param rowIndex 被双击的行的索引值
 * @param field 被双击的行的字段名
 */
function getFormatterValue(table,rowIndex,field){
	var val = $("#datagridPanel").find("#datagrid-row-r1-2-"+rowIndex+"").find(".datagrid-cell.datagrid-cell-c1-"+field+"").text();
	return parseFloat(val);
}

可以F12在控制台,查看datagrid的元素组成,ID为datagrid-row-r1-2-"+rowIndex+"获取td,然后td中是一个div,在div中是formatter中设置的显示内容

100824_RO41_2331760.png

datagrid的大致结构如上

 

 

转载于:https://my.oschina.net/u/2331760/blog/804283

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值