将数据集数据绑定到 GridView 会产生无限循环
本文关键字:无限循环 GridView 数据集 数据绑定 | 更新日期: 2023-09-27 17:57:16
我正在尝试将 GridView 绑定到数据集,但它抛出堆栈溢出错误。当我调试它时,它运行到 DataBind 行就很好(似乎它从服务器和所有内容中获取正确的记录),但在执行 DataBind 后,它会跳到方法的顶部并重新运行整个方法,这会导致堆栈溢出。
我不明白为什么这不起作用。我以前用数据表做过非常相似的事情,它工作得很好。
这是我的绑定方式
public void CreateGrid(String str)
{
try
{
sqlConnection = new SqlConnection();
sqlConnection.ConnectionString = ConfigurationManager.ConnectionStrings["MY_CONNECTION_STRING"].ConnectionString;
sqlConnection.Open();
DataSet dt = new DataSet();
SqlDataAdapter adapter = new SqlDataAdapter(str, sqlConnection);
adapter.Fill(dt);
sqlConnection.Close();
}
catch (Exception ex)
{
Console.WriteLine(ex.GetType().Name + ":" + ex.Message);
}
if (dt.Tables.Count > 0)
{
Grid.DataSource = dt;
Grid.DataBind();
}
}
这是我的 HTML 部分
<asp:GridView runat="server" ID="Grid" AutoGenerateColumns="false"
OnDataBinding="RebindGrid" AllowPaging="True" PageSize="10" AllowSorting="True" CellPadding="5"
OnPageIndexChanging="Grid_PageIndexChanging"
OnSorting="Grid_Sorting"
Width="100%" CssClass="mGrid">
<Columns>
<asp:BoundField DataField="ID" ItemStyle-Width="0%"
HeaderText="" Visible="false" SortExpression="ID"/>
</Columns>
</asp:GridView>
这
看起来像个问题
OnDataBinding="RebindGrid"
每次绑定数据时,您都会重新绑定。我们必须看到RebindGrid的代码。
这取决于
RebindGrid
方法的实际作用,但看起来就像您重新绑定网格一样。
删除OnDataBinding="RebindGrid"
。