easyui datagrid 添加操作列时设计到rowdata传参问题

在使用datagrid时,经常需要添加一列操作,里面可以有一些例如详情,删除,修改之类的超链接,这样就用到datagrid的格式化属性,如下代码所示

<th field="detail" width="8%" align="center" formatter="showDetailBtn">操作</th>
function showDetailBtn(value,rec,index){
    return "<a href='#' οnclick='doubleClickShowDetail(" + rec.id+ ");' >详情</a>";
}
如果是删除的操作我们可以像上面这样直接传一个id过去就可以根据id删除,但是当为修改或详情时,我们可以从rec中直接取值传过去,在使用的过程发现把rec.id

换成rec时,怎么都是报错的,这点搞不明白为什么。然后想到先把对象转化为json格式字符串,然后获取后在转换成obj,所以修改代码如下

function showDetailBtn(value,rec,index){
	var temp = JSON.stringify(rec);
	return "<a href='#' οnclick='doubleClickShowDetail(" + temp + ");' >详情</a>";
}
按照正常的逻辑这时候应该在doubleClickShowDetail方法中使用JSON.parse()方法转换为obj,如下。

function doubleClickShowDetail(rowData){
  var obj = JSON.parse(rowData)
 var seqeunceCode = obj.id;
}
但是实际上并不需要通过JSON.parse()方法转换,而是传过来的就是对象,即直接可以rowData.id

这点也不是很明白,只能先记录。

=================2017年1214日补充====================

1实现上述功能还有个前提,就是取消easyui自带的单击事件,否则自定义的事件是无法生效的。修改data-options

 data-options="
	                rownumbers:true,
	                singleSelect:false,
	                autoRowHeight:false,
	                pagination:true,
	                pageSize:10,
	                onClickRow:function(rowIndex, rowData){
	                	$('#datagrid').datagrid('unselectRow', rowIndex);
	                }"
要加上onClickRow方法

2.另外,当在自定义的方法中传一个参数时,也需要使用JSON.stringify()格式化,才能传值,否则会报错


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值