情况:我的应用程序执行AJAX请求,收到的数据显示在以下JQgrid中。 listData(data)
是在此{a} ajax请求的success
回调中调用的函数,
data
是从请求收到的JSON数据。
buildJqGrid
是一个自定义函数,用于调用表和div html元素上的.jqgrid()
。
buttonFormatter
是我的名为Action
function listData(data) {
var containerName = 'datatablea3',
columnNames = ["Name",
"Email",
"Language",
"Office",
"alter email",
"Action"
],
columnModels = [{
name: 'Name',
index: 'Name',
width: '200px'
},{
name: 'Email',
index: 'Email',
width: '200px'
}, {
name: 'Language',
index: 'Language',
width: '200px'
}, {
name: 'Office',
index: 'Office',
width: '200px'
}, {
name: 'AlterEmail',
index: 'AlterEmail',
width: '200px'
}, {
name: 'action',
width: '200px',
formatter: buttonFormatter
}],
sortColumnName = 'Name',
caption = "Employees",
rowNum = 25,
pager = '#pager2a3',
grouping = false,
groupingView = {},
rowList = [25, 50, 100];
buildJqGrid(containerName, data, columnNames, columnModels,
sortColumnName, caption, rowNum, pager, grouping,
groupingView, rowList, true, 'asc');
}
问题:当运行此jsp时,数据已成功显示在每个记录中的jqgrid
with view按钮中,但是当我单击视图按钮时,没有任何反应!
我在控制台中查看它显示"控制格式化程序"但是点击查看按钮时,它不显示"控制点击功能"。
我也尝试使用editLink
格式化程序,但仍然存在相同的错误,
任何人都可以告诉我为什么我的按钮的onclick
事件没有被解雇?
答案 0 :(得分:0)
“click”已经是一个函数,因此你覆盖它,什么都不会触发。
试试这个
function buttonFormatter(cellvalue, options, rowObject)
{
console.log("control in button formatter");
return '<button onclick=\"clickFunction();\">View</button>';
}
function clickFunction()
{
console.log("control in click function");
alert("hello");
}
答案 1 :(得分:0)
尝试这样,我也在我的项目中使用相同的功能(JQ Grid),尝试HTML输入类型而不是按钮,
使用您的代码时,单击事件正在触发,但整个网页正在重新加载。
function buttonFormatter(cellvalue, options, rowObject) {
if (rowObject.Status != "Not Started") {
console.log("Zumbaa");
var edit = "<input class='Viewbtn' type='button' value='View' onclick=\"ShowMigrationProcess(" + cellvalue + ");\" />";
return edit;
}
return '';
}