DataBinding DataSet到GridView产生无限循环

时间:2011-05-19 15:41:38

标签: c# asp.net

我正在尝试将GridView绑定到DataSet,但它会引发Stack溢出错误。当我调试它时,它运行到DataBind线就好了(看起来它从服务器和所有内容获得了正确的记录),但是在执行DataBind之后,它跳转到方法的顶部并重新运行整个方法,导致堆栈溢出。

我无法理解为什么这不起作用。我以前做过与DataTable非常相似的事情,它运行良好。

以下是我绑定的方式

    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>

2 个答案:

答案 0 :(得分:2)

这看起来像一个问题

OnDataBinding="RebindGrid"

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

答案 1 :(得分:0)

这取决于RebindGrid方法实际执行的操作,但看起来您将网格重新绑定为绑定它。

删除OnDataBinding="RebindGrid"

相关问题