ページには GridView と LinqDataSource があり、それらのアクションが GridView とその LinqDataSource に関連していないいくつかのボタンがあります。これらのボタンのポストバックごとに、LinqDataSource の Selecting メソッドが呼び出されるのはなぜですか? これは正常ですか?LinqDataSource からのこれらの不要な db 呼び出しは必要ありません。
もっと良い方法はありますか?
ページには GridView と LinqDataSource があり、それらのアクションが GridView とその LinqDataSource に関連していないいくつかのボタンがあります。これらのボタンのポストバックごとに、LinqDataSource の Selecting メソッドが呼び出されるのはなぜですか? これは正常ですか?LinqDataSource からのこれらの不要な db 呼び出しは必要ありません。
もっと良い方法はありますか?
データ ソースから GridView をデタッチする必要があります。このようにデータソースを添付したと思いますが、その場合はこのようにしないでください。
<asp:LinqDataSource
runat="server"
ContextTypeName="AdventureWorksDataContext"
TableName="Contacts"
ID="LinqDataSource1">
</asp:LinqDataSource>
<asp:GridView
ID="GridView1"
runat="server"
DataSourceID="LinqDataSource1" >
</asp:GridView>
必要に応じて、コード ビハインドにデータ ソースをアタッチすることをお勧めします。
if (dataSourceNeeded == true) {
GridView1.DataSource = GetDataSource();
GridView1.DataBind();
}
グリッドはページの読み込みごとに入力する必要があるため、データソースを変数にキャッシュしてサーバー側に保存することができます (viewstate ではありません)。