2

WebGrid を使用して動的データを表示しています。最近、コードをリファクタリングして、ビューに表示されるさまざまな種類のデータを含む階層モデルから離れて、ViewBag を使用するようにしました。

以前は、ヘッダーをクリックするだけでグリッドが列をうま​​く並べ替えていましたが、ViewBag に変更したため、テーブルが並べ替えられません。私の新しいコードは次のとおりです。

@if (ViewBag.data != null)
{
var grid = new WebGrid(
    source: ViewBag.data,
    defaultSort: "StudyName",
    rowsPerPage: 10,
    canSort: true,
    canPage: true,
    ajaxUpdateContainerId: "tableDiv"
    ); 

@grid.GetHtml(
tableStyle: "resultTable",
columns: grid.Columns(
    ViewBag.columns)
)
}

誰でもアイデアはありますか?

ありがとう。

4

1 に答える 1

2

CanSortプロパティを次のように設定したことを確認しtrueてくださいViewBag.columns

ViewBag.columns = new[] 
{
    new WebGridColumn
    {
        ColumnName = "Id"
    },
    new WebGridColumn
    {
        CanSort = true,
        ColumnName = "StudyName"                
    },
};

このプロパティが設定されている列のみがグリッド ヘッダーにハイパーリンクとして表示され、ユーザーは列を並べ替えることができます。

于 2011-09-15T13:27:35.410 に答える