【问题标题】:I want to get the edit dialog on click of a link..I have attached the code我想在单击链接时获得编辑对话框..我已附上代码
【发布时间】:2016-11-17 06:25:02
【问题描述】:

这是 ColModel:

{name: "FirstName", index: "FirstName", width: 100, sortable: true,      editable:true, formatter: GetRow}             

function GetRow(cellvalue, options, rowObject) {
     return "<a href='#' class='GetLink'>" + cellvalue + "</a>";
}
$('.GetLink').click(function (rowid) {
     var row = $('#grid').jqGrid('getGridParam', 'selrow');
     $('#grid').jqGrid('editGridRow', row, { recreateForm: true, closeAfterEdit: true, closeOnEscape: true, reloadAfterSubmit: false });
});

【问题讨论】:

    标签: asp.net jqgrid


    【解决方案1】:

    您当前的代码有一些缺点。我建议您使用formatter: "actions" 和选项formatoptions: { editformbutton: true } 而不是自定义格式化程序来创建编辑/删除按钮(参见the old documentation,它描述了格式化程序的选项,例如delbutton: false,它删除了删除按钮)在网格的每一行。 The old answer 更详细地描述了该方法,并提供了the demo,它演示了formatter: "actions" 的用法。

    如果您更喜欢使用自定义格式化程序,那么您可以使用&lt;span&gt; 而不是&lt;a&gt;

    return "<span class='GetLink'>" + cellvalue + "</span>";
    

    在哪里

    .GetLink { text-decoration: underline; cursor: pointer; }
    

    而不是使用$('.GetLink').click,它为每个hiperlink注册单独的点击处理程序,我建议你在网格上使用一个点击处理程序。 jqGrid 已经注册了这样的点击处理程序,并允许使用您关于beforeSelectRow 回调的自定义操作。它节省了 Web 浏览器的内存,并允许进行一次绑定,而不是在每次重新加载网格后重新应用绑定。详情请见the answer

    其他可能对您有帮助的答案:this onethis one

    【讨论】:

    • @Oleg ...感谢您的建议和时间...还有一个问题是当编辑对话框打开时,我得到了我修改为链接的单元格名称,并附加了“单元格值";你能给出一个解决方案来在编辑对话框中只获取单元格值吗
    • @Supreeth:我不确定我是否理解您的意思,但我猜您在自定义格式化程序的列中使用了editable:true。通常,永远不需要编辑包含链接的列。您应该删除editable:true 或使用editable:false。一种通常使用列中的属性sortable: false, search: false, editable: false, viewable: false, hidedlg: true,它具有自定义格式化程序。
    • @Supreeth:如果您确实需要编辑链接内的文本,那么您应该提供 unformatterunformat 回调)列。见the documentation。 unformatter 从自定义格式化单元格中获取可编辑部分
    • @Supreeth:不客气!如果问题现在解决了,你应该"accept" 回答。您将获得第一个声望点。
    猜你喜欢
    • 1970-01-01
    • 2013-09-09
    • 2020-07-20
    • 1970-01-01
    • 1970-01-01
    • 2018-12-08
    • 2014-03-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多