0

ObjectDataSourceコンポーネントおよび ObjectDataSource のデータを提供するクラス( ObjectDataSourceTypeName / SelectMethod属性)とともに、アプリケーションでGridView & Repeater (およびDropDownListなどのその他) コントロールを広範囲に使用します。私は最近、 SelectMethodが呼び出されるときにのみ呼び出されることに気付きました

IsPostBack == false

また、手動でバインドするときは、常に!IsPostBackのときにバインドします。今まで、コントロールがポストバック間でデータを維持する方法に興味がありませんでした (ソート/ページネーションなどを使用して GridView を作成する必要があり、効率的に実行したいと考えています)。

それがどのように行われたかを説明/説明付きのリンクを提供していただけますか?

また、1 つもわかりません。GridViewを使用して行を反復処理する場合、バッキング オブジェクトを取得するために (通常は何らかの ID を取得するために) GridViewRow.DataItemプロパティにアクセスする必要がある場合があります。また、null の場合もあれば、そうでない場合もあります。理由がわかりませんでした。ただし、それは null です。(たとえば) GridViewRow.DataKeysにアクセスできます。

ありがとう

編集: ViewStateのおかげであると答えた場合、別の質問があります: かなり重い 100 個のビジネス オブジェクトをデータ バインドし、データ バインド中にいくつかのプロパティのみを使用する場合 (たとえば、OnRowDataBound イベントを使用して追加のオブジェクトをレンダリングするとします)データ)、オブジェクト全体がシリアル化されるということですか?

4

2 に答える 2

1

ASP.Net は、ViewState をすべての HTML ページの隠し変数として使用して、ページの状態を維持します。

これを読んで理解を深めましょう

http://www.google.co.in/url?sa=t&rct=j&q=&esrc=s&source=web&cd=2&cad=rja&sqi=2&ved=0CFMQFjAB&url=http%3A%2F%2Fmsdn.microsoft.com%2Fen-us% 2Flibrary%2Fms972976.aspx&ei=UpE0UK3uBsOqrAe94ICwBg&usg=AFQjCNG5ErbrFH0ZYV_WW-jonIl25xEsDQ

于 2012-08-22T07:59:39.840 に答える
0

ページの非表示フィールドViewState(より正確には「__VIEWSTATE」) に保存します。ASPX ページで View Source を実行すると、それが表示されます。

また、Page の ViewState プロパティにアクセスすることで、ViewState にページの状態情報を格納および取得することもできます。

ここから始めますhttp://msdn.microsoft.com/en-us/library/ms972976.aspx

したがって、多数の大きなオブジェクトを格納すると、ページ サイクルでクライアントとの間で大量のデータが転送されます。Viewstate は注意深く使用すれば便利ですが、不注意に使用すると悪影響を与える可能性があります。

于 2012-08-22T07:58:23.867 に答える