【问题标题】:Prevent loading data until event防止加载数据直到事件
【发布时间】:2018-06-17 16:25:45
【问题描述】:

我在一个页面上有一堆 GridView,每个都有自己的协调 SqlDataSource。

它们都在初始化页面时(在页面加载时)加载它们的协调数据。我想在用户单击按钮时加载页面上特定 SqlDataSource(s) 的数据,这样它就不会在页面最初加载时同时尝试加载所有不同网格的所有数据。

注意:我还需要让分页功能正常工作,到目前为止我尝试过的任何操作都破坏了分页功能。

希望在用户单击按钮后告诉 SqlDataSource 将哪些数据绑定到它,然后让特定的 GridView 将该数据绑定到它,并让分页功能与它被告知加载的数据一起工作。

环境:C#、WebForms、ASP.NET、.NET 3.5、控件 SqlDataSource / GridView

据我所知,它正确绑定了数据,但是当我单击底部的其中一个页面进行分页时,“gridview”控件不断消失。

注意:如果我再次单击该按钮,它将显示正确的页面和页面的正确数据。

protected void btn_LoadData2_Click(object sender, EventArgs e) { Gridview2.DataSourceID = "DataSource2"; Gridview2.SelectCommand = "SELECT * FROM dbo.DataNeeded"; Gridview2.DataBind(); Gridview2.DataBind(); }

【问题讨论】:

  • 请显示您的代码,您似乎正在将您的 GridViews 链接到 HTML 中的 SqlDataSource,最好在您的代码后面这样做,因此您可以随时专门加载 GridView(例如加载, 点击事件)
  • 据我所知,它看起来正在正确绑定数据,但是当我出于某种原因单击底部的页面之一进行分页时,“gridview”控件不断消失。注意:如果我再次单击该按钮,它将显示正确的页面和页面的正确数据。不知道为什么。 protected void btn_LoadData2_Click(object sender, EventArgs e) { Gridview2.DataSourceID = "DataSource2"; Gridview2.SelectCommand = "SELECT * FROM dbo.DataNeeded"; Gridview2.DataBind(); Gridview2.DataBind(); }

标签: c# asp.net gridview webforms sqldatasource


【解决方案1】:

为每个数据源添加一个 Selecting 事件。然后在后面的代码中检查 IsPostBack 是否为 false 则取消操作。

protected void MyDataSource_Selecting(object sender, SqlDataSourceSelectingEventArgs e)
{
    if (!IsPostBack)
        e.Cancel = true;
}

【讨论】:

    猜你喜欢
    • 2017-08-20
    • 2018-09-06
    • 2010-09-16
    • 2020-09-23
    • 1970-01-01
    • 1970-01-01
    • 2021-11-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多