2011-07-07 9 views
2

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

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

答えて

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(); 
} 
+0

はい、いい考えです。私もちょっとしたキャッシュを使っています。 – Babak

+0

ええ、私はその点の周りに不思議に思っていた、あなたは私の頭を逆さまにボロップして、適切な私を指摘した。 – Merritt

+0

残念ながら、私の選択はLinqDataSourceに関連しているように見えますが、RadGridを使ってこのメソッドでデータをフックし、データをエクスポートすると、明らかに2xと呼ばれています。 – Merritt

2

それはグリッドがすべてのページの負荷に人口に必要があるため、あなたには、いくつかの変数にdatasorceをキャッシュして(ないビューステートでの)サーバー側でそれを保存することができる

+0

セッションオブジェクトは問題ありません。ありがとう。 – JanBorup

関連する問題