Asp.net mvc 3 在ASP.NET MVC 3中的JqGrid列中添加ActionLink
我正在使用jqGrid与ASP.NETMVC3和Razor 我希望在jqGrid中添加2列以及其他列 我要添加的列是Asp.net mvc 3 在ASP.NET MVC 3中的JqGrid列中添加ActionLink,asp.net-mvc-3,jqgrid,html.actionlink,Asp.net Mvc 3,Jqgrid,Html.actionlink,我正在使用jqGrid与ASP.NETMVC3和Razor 我希望在jqGrid中添加2列以及其他列 我要添加的列是 编辑 删除 这些列的值是我想要的ActionLink 如何将ActionLink添加到JqGrid的列中? 请在这方面指导我 更新1:在@user1534482的帮助下,我尝试了这个,但没有成功 colModel: [ ... { name: 'Open', formatter: 'prepareLinks' }, ... ], function
- 编辑
- 删除
ActionLink
如何将ActionLink添加到JqGrid的列中?
请在这方面指导我
更新1:在@user1534482的帮助下,我尝试了这个,但没有成功
colModel: [
...
{ name: 'Open', formatter: 'prepareLinks' },
...
],
function prepareLinks(cellvalue, options, rowObject) {
return "@Html.ActionLink("Open this","Test")";
}
javascript错误消息:
SyntaxError: missing ; before statement
[Break On This Error]
return "<a href="/SomeController/Test">Open this</a>";
SomeController (line 92, col 41)
语法错误:缺少;声明前
[在此错误上中断]
返回“”;
SomeController(第92行第41列)
您应该看看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>
其中,op
是formatoptions
对象,cellvalue
是粘贴到jqGrid的数据中的列值。您应该查看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>
其中,
op
是formatoptions
对象,cellvalue
是从粘贴到jqGrid的数据中得到的列的值。您可以使用自己的格式化程序,如
colModel: [
{ name: 'colname', formatter: linkbuilder },
],
及
你可以像这样使用你自己的格式化程序
colModel: [
{ name: 'colname', formatter: linkbuilder },
],
及
感谢@tpeczek和@user1534482 我终于找到了解决办法
colModel: [
...
{ name: 'Open',
formatter: function (cellvalue, options, rowObject) {
return '<a href="/ControllerName/Test/?myId=' + cellvalue + '">' + "Open" + '</a>';
}
},
...
],
colModel:[
...
{name:'打开',
格式化程序:函数(cellvalue、options、rowObject){
返回“”;
}
},
...
],
感谢@tpeczek和@user1534482
我终于找到了解决办法
colModel: [
...
{ name: 'Open',
formatter: function (cellvalue, options, rowObject) {
return '<a href="/ControllerName/Test/?myId=' + cellvalue + '">' + "Open" + '</a>';
}
},
...
],
colModel:[
...
{name:'打开',
格式化程序:函数(cellvalue、options、rowObject){
返回“”;
}
},
...
],
谢谢。但是我尝试了{name:'Open',formatter:'showlink',formattoptions:{baseLinkUrl:'@Url.Action(“Test”)',idName:'FolderId'}},
但是仍然没有生成链接,只有id显示在column@Yasser我已经更新了答案,详细说明了链接是如何生成的,请检查您是否为数据中的列返回了正确的值(通常它应该是链接的文本)。感谢您的链接,我通过使用格式化程序
选项实现了这一点,我还发布了我最终使用的答案。再次感谢:)谢谢。但是我尝试了{name:'Open',formatter:'showlink',formattoptions:{baseLinkUrl:'@Url.Action(“Test”)',idName:'FolderId'}},
但是仍然没有生成链接,只有id显示在column@Yasser我已经更新了答案,详细说明了链接是如何生成的,请检查您是否为数据中的列返回了正确的值(通常它应该是链接的文本)。感谢您的链接,我通过使用格式化程序
选项实现了这一点,我还发布了我最终使用的答案。再次感谢:)函数调用格式化程序:“PrepareLink”不带引号,不要忘记在js字符串中反斜杠双引号返回“@Html.ActionLink(\'openthis\',\'Test\”);或者使用'@Html.ActionLink(“打开此”,“测试”)'我使用格式化程序
选项添加了我的解决方案。谢谢函数在格式化程序中调用:“prepareLink”而不带引号,并且不要忘记在js字符串中反斜杠双引号返回“@Html.ActionLink(\'openthis\,'Test\”);或者使用'@Html.ActionLink(“打开此”,“测试”)'我使用格式化程序
选项添加了我的解决方案。谢谢