2011-09-15 15 views
2

いくつかの動的データを表示するためにwebgridを使用しています。私は最近ViewBagを使用してViewに表示されるさまざまな種類のデータを含む階層モデルから離れるように、自分のコードをリファクタリングしました。ASP.net MVC3 Webgrid

以前は、グリッドを並べ替えるだけでヘッダーをクリックしていましたが、私は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) 
) 
} 

他のアイディアですか?

ありがとうございました。

答えて

2

あなたViewBag.columnstrueCanSortプロパティを設定していることを確認してください:

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

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

+0

ハ....私はちょうど私がこの方法を使ってそれを理解したと言って来ました。ありがとう:) –

関連する問題