gpt4 book ai didi

c# - ModalPopupExtender 奇怪行为中的 Gridview 分页

转载 作者:行者123 更新时间:2023-11-30 18:32:50 25 4
gpt4 key购买 nike

我有一个包含 GridView 的 modalpopypextender,我想在单击按钮时填充它:

protected void btnViewRecipients_Click(object sender, EventArgs e)
{
ModalPopupExtender1.Show();
BindData();
}

这是直截了当的。 BindData 这样做:

protected void BindData()
{
try
{
SqlCommand sqlCommand = new SqlCommand();

string connectionString = "Data Source=SERVER\\DB1;Initial Catalog=Survey;User ID=abcde;Password=12345;";

using (SqlConnection sqlConnection = new SqlConnection(connectionString))
{
sqlCommand = sqlConnection.CreateCommand();

sqlCommand.CommandText = "Select * From [Survey].[dbo].[data]";

SqlDataAdapter sda = new SqlDataAdapter(sqlCommand.CommandText, connectionString);

SqlCommandBuilder scb = new SqlCommandBuilder(sda);

//Create a DataTable to hold the query results.

//Fill the DataTable.
sda.Fill(dTable);

//Set the DataGridView DataSource.
gvRecords.DataSource = dTable;
gvRecords.DataBind();

sqlConnection.Close();
}
}
catch (SqlException ex)
{
//Console.WriteLine(ex.StackTrace);
}
}

现在一切正常,我可以看到带有数据的网格。然后我打开自动分页并继续创建调用 gvRecords_PageIndexChanged。我还打开了 EnableSortingAndPagingCallbacks。

protected void gvRecords_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
gvRecords.PageIndex = e.NewPageIndex;
gvRecords.DataSource = dTable;
gvRecords.DataBind();
}

这有点奇怪。我注意到,当我单击页码时,表格变为空白并显示我之前定义的 EmptyDataText。但是当我关闭 ModalPopupExtender 并再次打开它(再次单击按钮)时,它会显示正确的页面和数据!例如如果我单击第 3 页,然后得到一个空白表格,现在重新打开 MPE 将在 GridView 中显示第 3 页的内容。我想这是存储在某处的 View 状态,但为什么 gridview 不会立即向我显示页面?

我真的被困在这上面,无法理解我错过了什么!

任何帮助都感谢百万次,我已经在网上搜索和搜索了这个,但也许它是如此微不足道和显而易见,以至于没有人需要问!?!

最佳答案

已编辑 我多年来一直在使用模式、更新面板和 ListView ,我们会解决这个问题,但最好能看到整个标记。

根据您的意见,我建议;

  1. 将整个模态标记放入 UpdatePanel。确保将 ID 和 UpdateMode 设置为条件;

    <asp:UpdatePanel ID="upModal" runat="server" UpdateMode="Conditional">
    <ContentTemplate>
    </ContentTemplate>
    </asp:UpdatePanel>
  2. 我通常使用 ASP:Panel 作为更新面板中的 DIV;

    <asp:Panel ID="pnlPopup" runat="server" CssClass="ModalPanel">
  3. 然后将您的 GridView(或者在我的情况下是 ListView)放在您的面板中

  4. 在调用 gvRecords.Databind() 后的代码中,调用 upModal.Update()

    protected void gvRecords_PageIndexChanging(object sender, GridViewPageEventArgs e)
    {
    gvRecords.PageIndex = e.NewPageIndex;
    gvRecords.DataSource = dTable;
    gvRecords.DataBind();
    upModal.Update();
    }

关于c# - ModalPopupExtender 奇怪行为中的 Gridview 分页,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18283193/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com