防止在每次回发时选择 LinqDataSource

发布于 2024-11-18 14:31:58 字数 187 浏览 3 评论 0原文

页面中有一个GridView和一个LinqDataSource,以及一些按钮,它们的操作与GridView及其LinqDataSource无关。为什么在这些按钮的每次回发时,LinqDataSource 的 Selecting 方法都会调用?这正常吗?! 不需要来自 LinqDataSource 的这些不需要的数据库调用。

还有更好的办法吗?

There are a GridView and a LinqDataSource in a page and few buttons which their actions are not related to the GridView and its LinqDataSource. Why on each post-back of those buttons the Selecting method of the LinqDataSource will call? Is this normal?!
These unwanted db calls from the LinqDataSource are not required.

Is there any better way?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

哀由 2024-11-25 14:31:58

您需要将 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();
}

You need to detach the GridView from the data source. I assume you have attached the data source like this, in which case, don't do it this way.

<asp:LinqDataSource 
    runat="server"
    ContextTypeName="AdventureWorksDataContext" 
    TableName="Contacts" 
    ID="LinqDataSource1">
</asp:LinqDataSource>

<asp:GridView 
    ID="GridView1" 
    runat="server"
    DataSourceID="LinqDataSource1" >
</asp:GridView>

Your better off attaching the data source in your code behind when it's needed.

if (dataSourceNeeded == true) {
  GridView1.DataSource = GetDataSource();
  GridView1.DataBind();
}
金兰素衣 2024-11-25 14:31:58

因为网格需要在每次页面加载时填充,您可以将数据源缓存到某个变量并将其存储在服务器端(而不是在视图状态中)

it because grid need to populated on every page load, you may cache datasorce to some variable and store it on the server side (not in viewstate)

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文