动态绑定Gridview

时间:2014-10-13 06:50:06

标签: asp.net c#-4.0 aspxgridview

****文本框的第二个值添加和删除gridview中的第一个值... ****

代码

protected void Button1_Click(object sender, EventArgs e)
    {
            DataTable dt1 = new DataTable();
            dt1.Columns.Add(new DataColumn("Name", typeof(System.String)));
            dt1.Columns.Add(new DataColumn("Age", typeof(System.String)));
            dt1.Columns.Add(new DataColumn("Gender", typeof(System.String)));
            dt1.Columns.Add(new DataColumn("Qualification", typeof(System.String)));

            DataRow dr = dt1.NewRow();
            dr["Name"] = TextBox1.Text;
            dr["Age"] = TextBox2.Text;
            dr["Gender"] = TextBox3.Text;
            dr["Qualification"] = TextBox4.Text;

            dt1.Rows.Add(dr);

            DataSet ds = new DataSet();
            ds.Tables.Add(dt1);


            GridView1.DataSource = ds.Tables[0];
            GridView1.DataBind();

            DataTable dt = new DataTable();
            dt.Columns.Add(new DataColumn("Name", typeof(System.String)));
            dt.Columns.Add(new DataColumn("Age", typeof(System.String)));
            dt.Columns.Add(new DataColumn("Gender", typeof(System.String)));
            dt.Columns.Add(new DataColumn("Qualification", typeof(System.String)));

            DataRow dr1 = dt1.NewRow();
            dr1["Name"] = TextBox1.Text;
            dr1["Age"] = TextBox2.Text;
            dr1["Gender"] = TextBox3.Text;
            dr1["Qualification"] = TextBox4.Text;

            dt.Rows.Add(dr1);

            DataSet ds1 = new DataSet();
            ds1.Tables.Add(dt);


            GridView1.DataSource = ds1.Tables[0];
            GridView1.DataBind();
             }

1 个答案:

答案 0 :(得分:0)

这种情况正在发生,因为你正在写它。 如果要在网格视图中添加新记录,则在添加新记录之前,应保留现有记录。

在您的情况下,您正在添加第一组记录,如此

DataTable dt1 = new DataTable();
            dt1.Columns.Add(new DataColumn("Name", typeof(System.String)));
            dt1.Columns.Add(new DataColumn("Age", typeof(System.String)));
            dt1.Columns.Add(new DataColumn("Gender", typeof(System.String)));
            dt1.Columns.Add(new DataColumn("Qualification", typeof(System.String)));

            DataRow dr = dt1.NewRow();
            dr["Name"] = TextBox1.Text;
            dr["Age"] = TextBox2.Text;
            dr["Gender"] = TextBox3.Text;
            dr["Qualification"] = TextBox4.Text;

            dt1.Rows.Add(dr);

            DataSet ds = new DataSet();
            ds.Tables.Add(dt1);


            GridView1.DataSource = ds.Tables[0];
            GridView1.DataBind();

哪个好,你正在制作一些数据并将其绑定到网格视图。 当你试图绑定新数据时,你又做了同样的事情

 DataTable dt = new DataTable();
                dt.Columns.Add(new DataColumn("Name", typeof(System.String)));
                dt.Columns.Add(new DataColumn("Age", typeof(System.String)));
                dt.Columns.Add(new DataColumn("Gender", typeof(System.String)));
                dt.Columns.Add(new DataColumn("Qualification", typeof(System.String)));

                DataRow dr1 = dt1.NewRow();
                dr1["Name"] = TextBox1.Text;
                dr1["Age"] = TextBox2.Text;
                dr1["Gender"] = TextBox3.Text;
                dr1["Qualification"] = TextBox4.Text;

                dt.Rows.Add(dr1);

                DataSet ds1 = new DataSet();
                ds1.Tables.Add(dt);


                GridView1.DataSource = ds1.Tables[0];
                GridView1.DataBind();

实际上是替换网格视图的数据源,我认为更好的选择是使用某种视图状态存储来存储表值并使用网格视图再次绑定它们。

尝试这样做 -

DataTable dt1 = new DataTable();
            dt1.Columns.Add(new DataColumn("Name", typeof(System.String)));
            dt1.Columns.Add(new DataColumn("Age", typeof(System.String)));
            dt1.Columns.Add(new DataColumn("Gender", typeof(System.String)));
            dt1.Columns.Add(new DataColumn("Qualification", typeof(System.String)));

            DataRow dr = dt1.NewRow();
            dr["Name"] = TextBox1.Text;
            dr["Age"] = TextBox2.Text;
            dr["Gender"] = TextBox3.Text;
            dr["Qualification"] = TextBox4.Text;

            dt1.Rows.Add(dr);

之后在同一个表中添加新记录

  DataRow dr1 = dt1.NewRow();
            dr1["Name"] = TextBox1.Text;
            dr1["Age"] = TextBox2.Text;
            dr1["Gender"] = TextBox3.Text;
            dr1["Qualification"] = TextBox4.Text;

            dt1.Rows.Add(dr1);

            DataSet ds1 = new DataSet();
            ds1.Tables.Add(dt1);


            GridView1.DataSource = ds1.Tables[0];
            GridView1.DataBind();

这对你有用。 如果要动态添加数据,则应使用ViewState临时存储ds。

相关问题