版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/wangxinxin1992816/article/details/84258959
在项目研发过程中,现场运维提出一个需求,能通过编写json文件的形式动态插入datagrid表格中几条模拟数据;
前提是页面已经从后台通过接口形式渲染好了表格,渲染成功后再通过ajax调用json数据形式往表格插入数据;
$("#id-searchInfo").datagrid({
url: "/tech/trial/getCurrentOrTodayTrialInfo",
checkOnSelect: false,
singleSelect: true,
selectOnCheck: false,
striped: true,
rownumbers: true,
})
以上方法通过接口读取数据库真实数据;
在onLoadSuccess属性后加回调函数
$.ajax({
url: "trialCourt.json",
type: "get",
async: false,
success: function (data) {
$('#id-searchInfo').datagrid('insertRow', {
index: data.insertLineNumber * 1, // 索引从0开始
row: data.rows[i]
})
}
})
到这一部都没有任何问题,本以为小小需求已然解决,可遇到接下来的问题
在点击表格的点击事件时,通过formatter拼写的点击事件获取回调参数index出现问题
{
field: 'detail', title: '详情', width: '8%', align: 'center', formatter: function (value, row, index) {
if (row.videos.length > 0) {
return '<a href="#" style="text-decoration: none; color:#fff;" onclick="loadClick('+index+')">点击查看</a>'
} else {
return '<a href="#" style="text-decoration: none; color:#fff;">不可查看</a>'
}
}
问题描述:通过接口获取数据时,datagrid渲染完成,在通过insertRow方法插入的数据默认index下标又从0开始。由此知道通过index来判断点击的是那条数据已经不准确,于是
$('#id-searchInfo').datagrid("getSelected");
则通过获取点击选中本行row数据来实现点击一行数据的操作。
方法比较笨,如有妙招请不吝赐教。欢迎留言探讨。