jqGrid的需要超级链接 - 需要通过jQuery来获取价值jqGrid的需要超级链接 - 需要通

2019-05-04 12:17发布

我在我的代码如下:

      { name: 'ID', index: 'ID', width: 40 , formatter: 'showlink', search: false, formatoptions: { baseLinkUrl: '/Program/EditMicro'} },

当我点击PNUM,什么情况是,它关系到我的ActionResult控制器以下内容:

    /Program/EditMicro

我想反而是捕捉通过对jQuery的选择是什么信息(选择什么号),我想做一些JSON,然后发送到以下的ActionResult

    /Program/EditMicro

因此,要回顾一下,反正是有什么捕获的超级链接的价值点击是,然后我可以捕捉jQuery中。

先感谢您

Answer 1:

在大多数情况下,这足以使用类似

formatter: "showlink",
formatoptions: {
    baseLinkUrl: "/Program/",
    showAction: "EditMicro",
    idName: "myId"
}

在这种情况下的链接将等产生

<a href="/Program/EditMicro?myId=123">text from the cell</a>

如果您在行动有行的id,你可以得到你直接从数据库中需要的任何其他附加信息。

另外,您可以使用所描述的简单的一招了答案 。 您定义的CSS类

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

然后你可以使用自定义格式如下图所示

formatter: function (cellValue, options, rowObject) {
    return "<span class='myLink'>" + cellValue + "</span>";
},
cellattr: function () {
    return " title=\"Click here to go to EditMicro\"";
}

在你的方式将产生<span>看起来像一个链接的用户。 你能赶上在使用电池的单击事件beforeSelectRowonCellSelect回调。 例如

beforeSelectRow: function (rowid, e) {
    var $td = $(e.target).closest("td"),
        iCol = $.jgrid.getCellIndex($td[0]);
    if (this.p.colModel[iCol].name === 'note') {
        window.location = "/Program/EditMicro/" +
            encodeURIComponent(rowid);
        return false;
    }
}

如果需要,您可以使用getColgetRowData从点击行得到任何其他数据和附加信息到目标URL。



Answer 2:

您可以附加以下到您的jqGrid声明,以防止触发默认的点击动作。

.click(function (event) { event.preventDefault(); })

然后,您可以不喜欢自己的点击事件处理程序通过

$('a').click(function () { //ToDo: Extra actions before submitting to controller });

你也可以建立你自己的自定义格式也添加额外的信息,你将要显示这样做的工作,因为网格是正在建造的超级链接。

编辑:工作的例子中我禁用了默认的点击功能,并结合我自己时显示一个警告(作为一个例子来说明,你会编写自己的功能做你想要做的额外工作)。 http://jsfiddle.net/QEzhr/33/



文章来源: JqGrid need hyperlink - need to capture value through Jquery
标签: jquery jqgrid