0

jqGrid にグループ化を追加したいと考えています。私は単純なモデルを持っています:

public class ViolationViewModel
{       
    [JqGridColumnFormatter(JqGridColumnPredefinedFormatters.Date, SourceFormat = "d.m.Y H:i:s", OutputFormat = "d.m.Y H:i")]
    public DateTime FixationTime { get; set; }       
    public string OrderNumber { get; set; }
    public string ViolationType { get; set; }
}

これはビュー内のコードです:

@{
      var grid = new JqGridHelper<ViolationViewModel>("myGrid",
      dataType: JqGridDataTypes.Json,
      methodType: JqGridMethodTypes.Post,
      pager: true,
      sortingName: "ViolationType",
      sortingOrder: JqGridSortingOrders.Asc,
      url: Url.Action("Violation", "Cabinet"),
      viewRecords: true,
      rowsList: new List<int>() { 10, 20, 30, 50, 100 },
      loadOnce: true,
      multiSelect: true,
      autoWidth: true,
      groupingEnabled: true,
      groupingView: new JqGridGroupingView { ColumnShow = new[] { false }, Fields = new[] { "ViolationType" }, DataSorted = true},         
    ).FilterToolbar(new JqGridFilterToolbarOptions() { StringResult = true })
    .Navigator(new JqGridNavigatorOptions() { Add = false, Delete = false, Edit = false, View = false, Refresh = false, Search = false });

}

16 個のレコードがあり、15 個のレコードが同じViolationTypeで、1 個のレコードが他の値を持っています。

その jqGrid の問題は、3 つの (2 つでなければならない) グループを作成しますが、同じキャプションを持つ 2 つのグループがあります。しかし、任意の列をクリックすると (並べ替えを変更)、すべて正常に動作し、2 つのグループがあります。

どこに問題がありますか?

もう 1 つの質問:rowListオプションの最初の値は10です。しかし、グリッドがロードされたときのデフォルト値は です20。最初の値に設定する方法は?

4

1 に答える 1

1

に設定DataSortedしましたtrue。この場合、最初のリクエストからのデータは、サーバー側で (「ViolationType」によって) 適切に並べ替えられ、適切な順序で返されます。

質問の 2 番目の部分では、初期値に設定rowsNumberするだけです。10

@{
    var grid = new JqGridHelper<ViolationViewModel>("myGrid",
        dataType: JqGridDataTypes.Json,
        methodType: JqGridMethodTypes.Post,
        pager: true,
        sortingName: "ViolationType",
        sortingOrder: JqGridSortingOrders.Asc,
        url: Url.Action("Violation", "Cabinet"),
        viewRecords: true,
        rowsList: new List<int>() { 10, 20, 30, 50, 100 },
        rowsNumber: 10,
        loadOnce: true,
        multiSelect: true,
        autoWidth: true,
        groupingEnabled: true,
        groupingView: new JqGridGroupingView { ColumnShow = new[] { false }, Fields = new[] { "ViolationType" }, DataSorted = true},         
    )
    .FilterToolbar(new JqGridFilterToolbarOptions() { StringResult = true })
    .Navigator(new JqGridNavigatorOptions() { Add = false, Delete = false, Edit = false, View = false, Refresh = false, Search = false });
}
于 2013-02-06T10:41:39.663 に答える