JqGrid需要超链接-需要通过Jquery捕获价值
我的代码中包含以下内容:JqGrid需要超链接-需要通过Jquery捕获价值,jquery,jqgrid,Jquery,Jqgrid,我的代码中包含以下内容: { name: 'ID', index: 'ID', width: 40 , formatter: 'showlink', search: false, formatoptions: { baseLinkUrl: '/Program/EditMicro'} }, 当我点击PNum时,它会转到以下actionresult我的控制器: /Program/EditMicro 相反,我希望通过Jquery捕获关于所选内容(所选ID)的信息 在发送到下面的
{ name: 'ID', index: 'ID', width: 40 , formatter: 'showlink', search: false, formatoptions: { baseLinkUrl: '/Program/EditMicro'} },
当我点击PNum时,它会转到以下actionresult我的控制器:
/Program/EditMicro
相反,我希望通过Jquery捕获关于所选内容(所选ID)的信息
在发送到下面的ActionResult之前,我想做一些json
/Program/EditMicro
那么,总而言之,是否有方法捕获超链接点击的价值,然后我可以在Jquery中捕获它
提前感谢您可以将以下内容附加到jqGrid声明中,以防止触发默认的单击操作
.click(function (event) { event.preventDefault(); })
然后,您可以通过
$('a').click(function () { //ToDo: Extra actions before submitting to controller });
您还可以构建自己的自定义格式化程序,以便在构建网格时向要显示的超链接添加额外信息,从而完成该工作
编辑:工作示例,在该示例中,我禁用了默认的单击功能,并绑定了我自己的以显示警报(例如,显示您将在何处编写自己的函数以执行您想要执行的额外工作)。
在大多数情况下,使用类似
格式化程序:“showlink”,
格式选项:{
baseLinkUrl:“/Program/”,
表演:“编辑微”,
idName:“myId”
}
在这种情况下,链接将生成如下
如果您在操作中具有行的id,则可以直接从数据库中获取所需的任何其他附加信息
或者,您可以使用中描述的简单技巧。您可以定义CSS类
.myLink{文本装饰:下划线;光标:指针;}
然后,您可以使用如下所示的自定义格式化程序
formatter: function (cellValue, options, rowObject) {
return "<span class='myLink'>" + cellValue + "</span>";
},
cellattr: function () {
return " title=\"Click here to go to EditMicro\"";
}
如果需要,您可以使用
getCol
或getRowData
从单击的行获取任何其他数据,并将信息附加到目标URL。标记,这不起作用。当我点击超链接并点击它时,它甚至没有向我显示警告信息感谢标记,但是你怎么能捕获点击的内容呢。与Note1、Note2等类似,在上面的示例中,它正在传入当前行的参数,以便您可以返回并获取该行,然后对其进行操作,例如,idRowData=$('#gridName').jqGrid('getRowData',rowid)
(如果您查看示例中每个注释的href)感谢Oleg,您上面使用的beforeSelectRow方法工作得很好。我还有一个问题与此有关。一旦用户转到window.location=“/Program/EditMicro/”+encodeURIComponent(rowid);然后填写表单,我会让用户返回到他们在网格上的页面。这样,他们就不需要说去102页了。有没有一个简单的方法可以做到这一点?Thanks@NatePat:不客气!您可以使用中描述的方法。它允许在localStorage
中保存jqGrid的状态。如果用户返回或只是再次打开同一页面,jqGrid的先前状态将被恢复。@Vieenay:不客气!我很高兴我也能帮助你。