Yas*_*ser 1 jqgrid html.actionlink asp.net-mvc-3
我正在使用jqGrid与ASP.NET MVC 3和Razor.
我希望在jqGrid中添加2列以及其余列.
我要添加的列是
这些列值我想成为ActionLink.
如何将ActionLink添加到JqGrid的列?
请指导我这个.
更新1:在@ user1534482的帮助下我尝试了这个但是没有用
colModel: [
...
{ name: 'Open', formatter: 'prepareLinks' },
...
],
function prepareLinks(cellvalue, options, rowObject) {
return "@Html.ActionLink("Open this","Test")";
}
Run Code Online (Sandbox Code Playgroud)
javascript错误消息:
SyntaxError: missing ; before statement
[Break On This Error]
return "<a href="/SomeController/Test">Open this</a>";
SomeController (line 92, col 41)
Run Code Online (Sandbox Code Playgroud)
你应该看一下showlink 预定义格式化程序.
您的问题中没有代码,所以我不知道您的方案有多复杂,但通常这样的代码应该足够了:
<script type="text/javascript">
jQuery("#gridId").jqGrid({
colNames: [..., 'Edit', 'Delete'],
colModel: [
...
{name:'EditAction', formatter:'showlink', formatoptions: { baseLinkUrl: '@Url.Action("Edit")' } },
{name:'DeleteAction', formatter:'showlink', formatoptions: { baseLinkUrl: '@Url.Action("Delete")' } }
],
...
});
</script>
Run Code Online (Sandbox Code Playgroud)
行ID将自动添加(您可以控制idName选项的方式).如果您需要传递一些其他参数,请查看文档中的addParam选项.
UPDATE
有关如何生成最终链接的说明,您可以使用以下公式:
"<a " + ((op.target) ? "target=" + op.target : "") + " href=\"" + op.baseLinkUrl + op.showAction + "?" + op.idName + "=" + rowId + op.addParam + "\">" + cellvalue + "</a>"
Run Code Online (Sandbox Code Playgroud)
对象在哪里,op是您粘贴到jqGrid的数据列的值.formatoptionscellvalue
| 归档时间: |
|
| 查看次数: |
6183 次 |
| 最近记录: |