0

私はこれを私のjqgridで'json'データで宣言しました:

sortname: 'CascadeId',
sortorder: 'asc',
sortable: true,

ただし、[並べ替え]ボタンは効果がありません。aspを使用してサーバー側の並べ替えを実装しました。しかし、ボタンが機能していません。ボタンを有効にする方法を教えてください。

更新: 最初のGETリクエスト:

http://localhost/myHandler.ashx?_search=false&nd=1361795033464&rows=20&page=1&sidx=CascadeId&sord=asc

ColModel:

colModel: [ { name: 'CascadeId', index: 'CascadeId', width: 85, sortable: true, editable: true, editrules: { custom: true, custom_func: validateCascadeID, required: true} }, { name: 'VenuProfile', index: 'VenuProfile', width: 150, sortable: false, editable: true, edittype: 'select', editoptions: { value: VenuProfile, width: 90, align: 'left'} }, { name: 'Location', index: 'Location', width: 210, sortable: false, editable: true }, ]

4

1 に答える 1

1

sidxPOST &でソート情報が出力されsord、サーバーでそれらの値を(再びsidx& )受信している場合は、サーバーでデータをフェッチするsord際に同等の処理を行う必要があります。order by

たとえば、C#のorder by場合、データのページング要求は次のようになります。

var pagedQuery = dataset.OrderBy(sidx + " " + sord).Skip((page - 1) * rows).Take(rows);

DateTimeMail' column in編集desc`の順序で並べ替えることから始まる、私の作業グリッドの1つの一部。

クライアント側:

        $('#Mailbox').jqGrid({
            datatype: 'json',
            url: '/Mail/MailboxGetGridData',
            mtype: 'POST',
            autoencode: true,
            postData: { Mailbox: 'Inbox' },
            colNames: ['IdMail', 'From', 'To', 'Date / Time', 'Subject', 'Message', 'HasBeenRead'],
            colModel: [
                { name: 'IdMail', index: 'IdMail', width: 95, align: 'center', sortable: false, hidden: true, editable: false },
                { name: 'IdSender', index: 'IdSender', width: 150, align: 'center', sortable: true, firstsortorder: 'desc', hidden: false, editable: false },
                { name: 'IdRecipient', index: 'IdRecipient', width: 150, align: 'center', sortable: true, firstsortorder: 'desc', hidden: false, editable: false },
                { name: 'DateTimeMail', index: 'DateTimeMail', width: 150, align: 'center', sortable: true, firstsortorder: 'desc', hidden: false, editable: false },
                { name: 'Subject', index: 'Subject', width: 250, align: 'left', sortable: false, hidden: false, editable: false },
                { name: 'Message', index: 'Message', width: 150, align: 'center', sortable: false, hidden: true, editable: false },
                { name: 'HasBeenRead', index: 'HasBeenRead', width: 150, align: 'center', sortable: false, hidden: true, editable: false },
            ],
            pager: $('#MailboxPager'),
            rowNum: 5,
            rowList: [5, 10, 20, 50],
            sortname: 'DateTimeMail',
            sortorder: "desc",
....

サーバ側:

    public ActionResult MailboxGetGridData(string sidx, string sord, int page, int rows, bool _search, string filters)
{
  .....
  var pagedQuery = filteredQuery.OrderBy(sidx + " " + sord).Skip((page - 1) * rows).Take(rows);
  var jsonData = new
            {
                total = (totalRecords + rows - 1) / rows,
                page = page,
                records = totalRecords,
                rows = (
                    from item in pagedQuery.ToList()
                    select new
                    {
                        cell = new string[] {
                            item.IdMail.ToString(),
                            HelperClasses.HelperMethods.getUserName(item.IdSender),
                            HelperClasses.HelperMethods.getUserName(item.IdRecipient),
                            ((DateTime)item.DateTimeMail).ToString("g"),
                            item.Subject,
                            item.Message,
                            (Mailbox == "Inbox") ? item.HasBeenRead.ToString() : "True"
                        }
                    }).ToArray()
            };

            return Json(jsonData, JsonRequestBehavior.AllowGet);
于 2013-02-25T11:57:24.563 に答える