【问题标题】:Is it possible to add an hyperlink at the bottom of a jqgrid?是否可以在 jqgrid 的底部添加超链接?
【发布时间】:2013-03-06 15:52:13
【问题描述】:

我有一个 JQgrid,它只包含一个包含一些 4 个值的列...我需要在这 4 个值之后添加一个常量超链接,它与单元格中的值无关。它不应该是与列结合...相反,它应该在列下方的 JQgrid 内显示为单独的超链接。如何实现这一点??

这是我的代码:

aspx:

<table id="UsersGrid" width = "750px">

     </table> 

Js:

$(function () {
            $("#UsersGrid").jqGrid({

                datatype: function (pdata) { getData(pdata); },
                colNames: ['CampaignName'],
                colModel: [
                        { name: 'campaign_name', index: 'CampaignName', width: 750},
                    ],
                    hidegrid: false,
                caption: 'Recent Campaigns'

            });
});

 function getData(pData) {
            var userid = $("#userId").val();
            var postData = {};
            postData.userId = userid;

            $.ajax({
                type: "GET",
                url: "/iSpaceWeb/CampaignService.svc/GetRecentCampaigns",
                contentType: "application/json; charset=utf-8",
                dataType: "json",
                data: postData,
                success: function (data) {
                    ReceivedClientData(JSON.parse(data));
                },
                error: function (data, textStatus) {
                    alert('An error has occured retrieving data!');
                }
            });
        }

        function ReceivedClientData(data) {
            var thegrid = $("#UsersGrid");
            for (var i = 0; i < data.length; i++) {
                thegrid.jqGrid('addRowData', i, data[i]);
            }

        }

【问题讨论】:

  • 这个超链接是恒定的,还是取决于单元格的值?
  • 为什么超链接不能出现在网格内它自己的单元格中?
  • @Kasyx 是一个常量超链接

标签: jquery asp.net jqgrid hyperlink


【解决方案1】:

您可以添加 footerrow: true 作为 jqGrid 的另一个选项,其中包括页脚行。要填充该行,您可以使用footerData:

$("#UsersGrid").jqGrid("footerData", "set", {
    campaign_name: "<a href='http://www.google.com'>Google</a>"
}, false);

此外,我不建议您使用datatype 作为函数并使用addRowData 来填充数据。这是非常糟糕的风格。取而代之的是,您可以使用datatype: "json" 并使用ajaxGridOptions: { contentType: "application/json; charset=utf-8" }serializeGridData 设置Ajax 请求的其他选项。

$.ajax 中的success 内部的JSON.parse(data) 调用具有dataType: "json" 看起来非常可疑。我想您将 CampaignService.svc/GetRecentCampaigns 手动 中返回的对象转换为 JSON 字符串。这是不对的。您应该返回 object 并且 WCF 运行时会将返回的数据 * 自动 * 转换为 JSON 字符串。您当前的代码将序列化为 JSON 两次,因此您还必须解析服务器响应两次:一次将由具有 dataType: "json"$.ajax 解析,另一次通过调用 @ 解析它987654338@ 明确。你应该在你的服务器代码中解决这个问题,并在客户端调用 JSON.parse(data) 之后删除。

【讨论】:

  • 实际上它被一分为二,我在列值和超链接之间得到一条线。如何避免这种情况?
  • @Xavier:抱歉,我不明白你的意思。您能否发布图片并描述问题?
  • 我附上了我的 JQgrid 的截图。请在我的编辑中检查
  • @Xavier:您似乎使用了错误的网格width 或列的width: 750。尝试增加该值以使没有滚动条。我建议您另外添加 height: "auto" 选项到 jqGrid。告诉信任使用datatype作为函数的整个构造是非常糟糕的。查看the old answer,其中包含使用 WCF 和 jqGrid 的基本代码。
  • @Xavier:看看the demo。大约可以查看代码的客户端部分。
猜你喜欢
  • 2016-04-19
  • 2016-11-17
  • 2020-09-10
  • 2023-01-11
  • 1970-01-01
  • 2011-08-08
  • 2011-06-01
  • 2021-12-09
  • 1970-01-01
相关资源
最近更新 更多