防止每次回发时选择LinqDataSource
本文关键字:选择 LinqDataSource | 更新日期: 2023-09-27 18:01:18
在一个页面中有一个GridView和一个LinqDataSource,还有一些按钮,它们的动作与GridView和它的LinqDataSource无关。为什么在这些按钮的每次回发时,LinqDataSource的选择方法将调用?这正常吗?!这些不需要的来自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();
}
因为grid需要在每次页面加载时填充,所以您可以将数据源缓存到某个变量并将其存储在服务器端(而不是在viewstate中)