我有一个包含网格视图的 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 将在网格视图中显示第 3 页的内容。我猜那是存储在某处的视图状态,但为什么 gridview 不会立即向我显示页面?
我真的被困在这一点上,无法理解我错过了什么!
任何帮助感激百万次,我已经在网上搜索和搜索了这个,但也许它是如此微不足道和明显以至于没有人需要问!?!