仅使用 id 创建 jqGrid 链接

发布于 2024-09-19 17:54:49 字数 537 浏览 8 评论 0原文

可以看到如何使用以下方法创建 jqGrid 链接:

colModel: [ {name:'myname', 
             formatter:'showlink', 
             formatoptions:{baseLinkUrl:'someurl.php', addParam: '&action=edit'}

这将创建一个类似于 /someurl.php?id=XX&action=edit 并且显示文本将为myname 的值。

但在我们的例子中,我们不需要 myname 文本 - 我们的显示文本将被硬编码。我们不想在 JSON 请求中传递任何额外的数据 - 但似乎您需要为每列提供一个 JSON 属性。我们怎样才能有一个没有 addl JSON 列的链接?

I can see how to create a jqGrid link using:

colModel: [ {name:'myname', 
             formatter:'showlink', 
             formatoptions:{baseLinkUrl:'someurl.php', addParam: '&action=edit'}

This creates a request like /someurl.php?id=XX&action=edit and the display text will be the value of myname.

But in our case we don't need the myname text - our display text will be hard coded. We don't want to have to pass any additional data down in our JSON request - but it seems you need a JSON attribute for each column. How can we have a link without the add'l JSON column?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

泪之魂 2024-09-26 17:54:50

与所有其他格式化程序一样,格式化程序'showlink'用于格式化从服务器或本地数据加载到jqGrid中的数据。因此,在您的示例中,链接中不会有“myname”文本(列名称),而是网格中的单元格值

因此,如果您想使用 预定义格式化程序 'showlink' 您必须使用想要在链接中看到的文本填充列数据。您可以在 JSON 数据内部执行此操作,也可以在加载页面后填充/覆盖文本,例如在 loadComplete 事件句柄:

loadComplete: function() {
    var grid = $("list");
    var ids = grid.getDataIDs();
    for (var i = 0, idCount = ids.length; i < idCount; i++) {
        grid.setCell(id, 'myname', 'My text for link');
    }
}

您还可以使用 自定义格式化程序自定义取消格式化程序而不是'showlink' 预定义格式化程序。然后您可以根据需要定义链接文本,而无需在网格中填充任何数据。

The formatter 'showlink' like all other formatter are used to format the data loaded in jqGrid from server or from the local data. So in case of your example you will not have 'myname' text (the column name) in the link but the cell value from the grid.

So if you want to use predefined formatter 'showlink' you have to fill the column data with the text which want to see in the link. You can do this either inside of your JSON data or filling/overwriting the text after the page are loaded for example inside of loadComplete event handle:

loadComplete: function() {
    var grid = $("list");
    var ids = grid.getDataIDs();
    for (var i = 0, idCount = ids.length; i < idCount; i++) {
        grid.setCell(id, 'myname', 'My text for link');
    }
}

You can use also custom formatter and custom unformatter instead of 'showlink' predefined formatter. Then you can define the text of link like you want without filling any data in the grid.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文