C# asp GridView未被绑定

C# asp GridView未被绑定,c#,asp.net,gridview,C#,Asp.net,Gridview,我的代码的问题是,我正在尝试更新数据表(删除几行),然后尝试将其分配给网格视图数据源。数据表正在更新并在Gridview中。DataSource=dt;(数据源显示了完美的数据)但Gridview没有得到更新 我需要在这里添加一些内容吗 protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { Bi

我的代码的问题是,我正在尝试更新数据表(删除几行),然后尝试将其分配给网格视图数据源。数据表正在更新并在Gridview中。DataSource=dt;(数据源显示了完美的数据)但Gridview没有得到更新

我需要在这里添加一些内容吗

       protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                BindData();

                try
                {
                    GridViewTree1.DataBind();

                }
                catch (Exception ex)
                {

                    throw;
                }

            }

            GridViewTree1.Visible = true;
            GridViewHistory.Visible = false;
            dt = Session["dt"] as DataTable;

            DeleteParentRowsWithNoChilds(dt);
            dt.AcceptChanges();
            GridViewTree1.EditIndex = -1;
            GridViewTree1.DataSource = dt;
            GridViewTree1.DataBind();

        }


        private void DeleteParentRowsWithNoChilds(DataTable dt)
        {
            DataRow[] FolderRows;
            FolderRows = dt.Select("IsFolder='true'");
            foreach (DataRow row in FolderRows)
            {
                int RowId = int.Parse(row["Id"].ToString());
                int nextRowid = RowId + 1;
                DataRow[] nextrow = dt.Select("Id='" + nextRowid + "'");
                if (nextrow.Count() > 0 && !nextrow[0].ToString().Contains('\\'))
                {
                    dt.Rows.Remove(row);

                }
                //If it is a last row
                else
                {
                    dt.Rows.Remove(row);
                }

            }

        }

您所做的是删除
,但不更新
会话dt
,这就是为什么它总是在
数据表
中获取以前的值,因此您应该在删除
后更新
会话
,如

private void DeleteParentRowsWithNoChilds(DataTable dt)
        {
            DataRow[] FolderRows;
            FolderRows = dt.Select("IsFolder='true'");
            foreach (DataRow row in FolderRows)
            {
                int RowId = int.Parse(row["Id"].ToString());
                int nextRowid = RowId + 1;
                DataRow[] nextrow = dt.Select("Id='" + nextRowid + "'");
                if (nextrow.Count() > 0 && !nextrow[0].ToString().Contains('\\'))
                {
                    dt.Rows.Remove(row);

                }
                //If it is a last row
                else
                {
                    dt.Rows.Remove(row);
                }

            }
                Session["dt"] = dt;

       }

添加GridViewTree1.DataSource=null;GridViewTree1.DataSource=dt之前的代码;您是如何为会话[“dt”]赋值的?@MuradGaribzada..我试过了。但是GridViewTree1中的dvtree仍然没有得到更新的反映values@Usman..Mydatatable是完美的。它已经更新。我的问题是gridViewTree1没有被分配datatable值。