リストにあるlinqクエリの結果をバインドするグリッドビューがあります。背後にあるコードではグリッドビューでnullになるデータソース
<asp:GridView ID="MyGrid" AllowSorting="True" OnSorting="SortMyGrid">
を、私は、イベントハンドラは次のように設定している:後ろの私のコードでは、私はその後、私はまた、有効にソートしてグリッドを持っているリスト
MyGrid.DataSource = MyList;
MyGrid.DataBind();
でのGridViewをバインド:
protected void MyGrid(object sender, GridViewSortEventArgs e)
{
var NewDataSource = from d in MyList
orderby e.SortExpression
select d;
}
問題は、イベントハンドラが引き継がれたときにMyListがnullになることです。私はそれをトレースしていると私はそれが正常にロードされた参照してください、私は正しいデータでページ上のgridviewが表示されますが、私はグリッドを並べ替えるために列見出しをクリックすると、MyList nullに行く!なぜ??問題の原因は何ですか?
実際には?失われた?リストをセッションに入れるにはどうしたらいいですか?申し訳ありませんが、私はフレームワークを初めて使っています。 – frenchie
確認していただきありがとうございます。どのようなドラッグ!私はちょうど、ページがレンダリングされた後に変数の値を保持しないための利点はありますか?変数がその値を自動的に保持するのではなく、別のオブジェクトに変数を渡す必要がある場合に、フレームワークがこのように構築されるのはなぜですか? – frenchie
@frenchie:これはなぜ実際にはわかりませんが、 - )。私はそれがデータの重複を取り除くと思います。データバインディングの行為は、グリッド内のセル値にデータを変換するので、これが完了すると、DataSourceプロパティは空になります。これはただの推測です:-)。 –