您现在可能已经想通了,但无论什么值得在这里是我使用自定义格式化程序的答案。 Action列是使用自定义格式化程序呈现的,该自定义格式程序显示调用简单JavaScript函数的按钮。
$(document).ready(function() {
$("#all-errors-list").jqGrid({
url: '/Error/AllErrors/',
datatype: 'json',
mtype: 'GET',
colNames: ['Id', 'Error','Actions'],
colModel: [
{ name: 'Id', index: 'Id', width: 100, align: 'left', editable: true},
{ name: 'ErrorDetails', index: 'ErrorDetails', width: 350, align: 'left' },
{ name: 'ActionId', width:400, formatter: actionFormatter}
],
pager: '#all-errors-pager',
rowNum: 10,
rowList: [10, 20, 50],
sortname: 'Id',
sortorder: 'asc',
viewrecords: true,
imgpath: '<%=Html.ImagePath()%>',
caption: 'Open Errors',
height: "100%",
width: "100%",
gridComplete: function() { $("button").button(); }
})
function actionFormatter(cellvalue, options, rowObject) {
return "<button onclick=\"alert('" + cellvalue + "')\">Details</button>" ;
}
我希望有帮助。
非常感谢您的回答, 但是,这不是我所需要的。我已经实现了一个自定义编辑对话框,我需要的是一个调用它的链接。一般来说,我需要为各种原因添加命令列,而不仅仅是删除或编辑。 – ulu 2010-09-20 12:15:51
@ulu:在“调用它的链接”下是什么意思?如果您具有自定义编辑对话框,则可以在导航器中添加带有操作的按钮(每个操作具有任意图标或文本的一个按钮),从而调用该对话框。如果用户选择一行并按下导航器上的按钮,则可以使用所选行中的数据调用对话框。如果您想要在每行**中添加操作按钮,您可以按照演示“行编辑”和“自定义编辑”进行操作。您可以调用自定义对话框而不是在演示中使用的'editRow','saveRow'和'restoreRow'。 – Oleg 2010-09-20 13:06:03
奥列格, 忘记编辑。我需要的是带有自定义html的附加列,它可以是像“/ Some/Other/{id}/page”这样的链接,也可以是调用参数化函数的按钮。就像GridView中的模板列一样。 – ulu 2010-09-20 13:27:30