将数据集数据绑定到 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>

将数据集数据绑定到 GridView 会产生无限循环

看起来像个问题

OnDataBinding="RebindGrid"

每次绑定数据时,您都会重新绑定。我们必须看到RebindGrid的代码。

这取决于

RebindGrid方法的实际作用,但看起来就像您重新绑定网格一样。

删除OnDataBinding="RebindGrid"