0

ビューの選択に基づいてグリッドに動的にデータを入力する必要があります。以下のリンクをたどって、グリッドに動的にデータを入力しました。

https://codereview.stackexchange.com/questions/3668/suggestions-for-jqgrid-dynamic-columns-and-server-side-paging-sortin-filterin

動的列バインディングでjqgridを表示する際の問題

2つのajax呼び出しを使用します。1つはJqGridのColModelとColNamesを取得し、2つ目はcolDataを取得します。返されるデータは現在のページのみです(つまり、20レコード-ページサイズ20)。

私が抱えている問題は、サーバー側のページングが機能していないことです。ポケットベルの次のボタンをクリックすると、最初のページのみが再度読み込まれます。

ハンドラーのコードは次のとおりです

                var numberOfRows = context.Request["rowsPerPage"];
                int nRows, iPage;
                if (String.IsNullOrEmpty(numberOfRows) || !int.TryParse(numberOfRows, NumberStyles.Integer, CultureInfo.InvariantCulture, out nRows))
                    nRows = PageSize; // default value
                var pageIndex = context.Request["pageIndex"];
                if (String.IsNullOrEmpty(pageIndex) || !int.TryParse(pageIndex, NumberStyles.Integer, CultureInfo.InvariantCulture, out iPage))
                    iPage = 1; // default value

context.Request["rowsPerPage"]およびcontext.Request["pageIndex"]は常にnullを返し、デフォルト値に設定されます。私は何が欠けていますか。助けてください。

4

2 に答える 2

0

jqGridからPOSTをチェックしていますか?sidx、sord、page、rows、_search、filtersの値を含める必要があります。

次に、コントローラーはこれらの値にアクセスして、データのどの列の並べ替え順序と、どのページを表示するかを処理します。コントローラの例は次のとおりです。

public ActionResult getGridData(string sidx, string sord, int page, int rows, bool _search, string filters)

編集:

Passing Data to the jqGrid:
            var jsonData = new
        {
            total = (totalRecords + rows - 1) / rows,
            page = page,
            records = totalRecords,                
            userdata = new { TradeIniator = tradeIniator, TradeRecepient = tradeRecepient, AnonUser = anonUser, Subtotal = tradeTotal.ToString(), FoilTradeAmount = "Trade Total" },
            rows = (
                from tempCard in pagedQuery.ToList()                    
                select new
                {
                    cell = new string[] {                    
                        value1,
                        value2, 
                        ....
                    }
                }).ToArray()
        };//var jsonData

 return Json(jsonData, JsonRequestBehavior.AllowGet);
于 2013-03-25T22:48:44.950 に答える
0

わかりました、問題を見つけました。colModelに次のものがあります[{"name": "Id"、 "width": "300"}、{"name": "Name"、 "width": "300"}、{"name": "タイプ"、"幅 ":" 300 "}];

また、グリッドの初期化ではwidth="auto"です。

このため、ページングとソートのパラメーターはnullで返されました。行width="auto"を削除しましたが、パラメーターは正しい値で渡されます。

于 2013-03-26T13:40:36.643 に答える