0

jqgrid のカスタム プロパティを使用して ASP.NET セッション値をページに保持したいのですが、機能していないようです。

グリッドは、「MyVariable」というカスタム プロパティを使用して、次のように定義されています。

$("#myGrid").jqGrid({
    url: RootAbsolutePath + "Customer/GetCustomerList",
    datatype: "json",
    mtype: 'POST',
    page: 1,
    rowNum: 10,
    rowList: [10, 20, 30],
    pager: $("#myPager"),
    toppager: true,
    colNames: column_names,
    colModel: [
        { name: "CUSTOMERNUMBER", index: "CUSTOMERNUMBER", width: 150, align: "center", "formatter": customerEditLink },
        { name: "DEALERSHIPID", index: "DEALERSHIPID", width: 150, align: "center", stype: "select", searchoptions: { "value": dealerShopSelector} },
        { name: "IDENTITYNUMBER", index: "IDENTITYNUMBER", width: 150, align: "center" },
        { name: "CUSTOMERNAME", index: "CUSTOMERNAME", width: 150, align: "left" },
        { name: "CUSTOMERTYPE", index: "CUSTOMERTYPE", width: 120, align: "center", "stype": "select", "searchoptions": { "value": typeSelector} },
        { name: "MOBILE", index: "MOBILE", width: 120, align: "center" },
        { name: "ADDRESS", index: "ADDRESS", width: 400, align: "left" },
    ],
    autowidth: true,
    shrinkToFit: false,
    height: "100%",
    viewrecords: true,
    hoverrows: true,
    sortname: "CUSTOMERNAME",
    sortorder: "asc",
    MyVariable: "Hello World!"
});

コントローラーで、MyVariable の値を設定し、Json データとして返します。グリッド上で値を永続化することを望んでいます。

    public JsonResult GetCustomerList()
    {
        var model = new someModel();
        List<object> listOfObjects = new List<object>();
        // do something with the model and get data into listOfObjects

        var jsonData = new
        {
            total = model.TotalPages,
            page = model.page,
            records = model.totalRecords,
            MyVariable = "Hello Controller!",          
            rows = listOfDataObjects
        };

        return Json(jsonData, JsonRequestBehavior.AllowGet);
     }

ページがロードされた後、この変数にアクセスしてみてください。

var $grid = $('#myGrid');
alert($grid.jqGrid('getGridParam', 'MyVariable'));

「Hello Controller!」ではなく、常に「Hello World」と表示されます。これは、グリッドのロード後にカスタム プロパティを変更できないということですか?

次に、この例で、ユーザーが CUSTOMERTYPE 列ヘッダーを選択してデータをフィルター処理した場合、そのフィルター処理された基準値を取得するにはどうすればよいでしょうか?

私はjqGridが初めてで、単純なことを機能させるのは気が狂っています。どんな助けでも本当に感謝しています!

4

1 に答える 1