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

来源:互联网 发布:淘宝卖aj的正品店 编辑:程序博客网 时间:2024/06/08 05:26

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

<th field="detail" width="8%" align="center" formatter="showDetailBtn">操作</th>function showDetailBtn(value,rec,index){    return "<a href='#' onclick='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='#' onclick='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()格式化,才能传值,否则会报错


原创粉丝点击