0

これが私のグリッドの外観です4つの値を含む1つの列のみを含むJQgridがあります...セル内の値に依存しない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]);
            }

        }
4

1 に答える 1

1

footerrow: trueフッター行を含むjqGridのもう1つのオプションとして追加できます。行を埋めるには、次を使用できますfooterData

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

datatypeさらに、関数として使用addRowDataしたり、データを埋めるために使用したりすることはお勧めしません。とてもスタイルが悪いです。datatype: "json"その代わりに、 と を使用して Ajax リクエストの追加オプションを使用および設定ajaxGridOptions: { contentType: "application/json; charset=utf-8" }できますserializeGridData

持ってJSON.parse(data)いる中successの呼び出しは非常に疑わしいようです。内部の返されたオブジェクトを手動で JSON 文字列に変換するとします。それは間違っています。オブジェクトを返す必要があり、WCF ランタイムは返されたデータを *自動的に* JSON 文字列に変換します。現在のコードは JSON へのシリアル化を2 回行っているため、サーバーの応答も 2 回解析する必要があります。サーバー コードで問題を修正し、クライアント側からの不要な呼び出しの後に削除する必要があります。$.ajaxdataType: "json"CampaignService.svc/GetRecentCampaigns $.ajaxdataType: "json"JSON.parse(data)JSON.parse(data)

于 2013-03-18T12:37:35.920 に答える