1

私はJQGridが初めてです。私が直面している問題を説明させてください...

内部で JQGrid を使用している struts2-jquery グリッドを使用しており、外部でグリッドを制御しています。例: 検索要素を使用してグリッド内の行をフィルタリングしています。

グリッドがロードされているときはいつでもページャーは正常に動作しますが、データをフィルタリングしているときはページャーが機能せず、いくつかの無限値が表示されます。私のコードも投稿できないので、誰かがこれの解決策を教えてくれますか...上記の問題の実際の例があれば、本当にかなりの価値があります...

4

1 に答える 1

1

コードが表示されないと、状況が少し難しくなります。しかし、これは私のプロジェクトの1つで、JQgridを使用したプロジェクトでページネーションを実装するために使用したコードです(とにかく役立つかどうか、またはデバッグを開始する場所の指示を確認してください)

サーバー側コード

public ActionResult GridData(int page, int rows, string searchField = "", string searchString = "",
                                     string searchOper = "", string sidx = "ID", string sord = "desc")
        {          
            int pageIndex = Convert.ToInt32(page) - 1;
            int pageSize = rows;

            var items = _repo.GetItemDatacollection(searchField, searchString, searchOper, pageIndex, pageSize, sidx, sord);

            int totalRecords = _repo.GetAll().Count();
            var totalPages = (int)Math.Ceiling(totalRecords / (float)pageSize);

            var jsonData = new
            {
                total = totalPages,
                page,
                records = totalRecords,
                rows = (from item in items.ToList()
                        select new
                        {
                            i = item.ID,
                            cell = new[] { item.ID, item.Name }
                        }).ToArray()
            };
            return Json(jsonData, JsonRequestBehavior.AllowGet);
        }

GetItemDataCollection は基本的にこのようなことを行います。(私は、Scott Guthrie の動的 LINQ ライブラリを内部で利用しました。これは、LINQ を使用して JQgrid で検索を実装するために極めて重要ではないにしても、非常に便利でした)

  return _entities.Set<T>().Where(ConvertOpr(searchOper, searchField), searchString)
                                      .OrderBy(sidx + " " + sord)
                                      .Skip(pageIndex * pageSize)
                                      .Take(pageSize);

JQgrid の実装

 jQuery('#theGrid').jqGrid({
            url: '@Url.Action("GridData")',
            datatype: 'json',
            mtype: 'GET',
           //...
 });
于 2012-09-05T14:18:12.007 に答える