2

ページには GridView と LinqDataSource があり、それらのアクションが GridView とその LinqDataSource に関連していないいくつかのボタンがあります。これらのボタンのポストバックごとに、LinqDataSource の Selecting メソッドが呼び出されるのはなぜですか? これは正常ですか?LinqDataSource からのこれらの不要な db 呼び出しは必要ありません。

もっと良い方法はありますか?

4

2 に答える 2

4

データ ソースから 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();
}
于 2011-07-07T03:21:21.080 に答える
2

グリッドはページの読み込みごとに入力する必要があるため、データソースを変数にキャッシュしてサーバー側に保存することができます (viewstate ではありません)。

于 2011-07-07T02:48:37.020 に答える