就是我在gridview 里写了这个
<FooterTemplate>
<asp:TextBox ID="txtAddress" runat="server" Width="80px"></asp:TextBox>
<asp:Button ID="btnAdd" runat="server" Text="添 加" OnClick="btnAdd_Click" />
<asp:Button ID="btnCancel" runat="server" Text="取 消" OnClick="btnCancel_Click" />
</FooterTemplate>
我在点击添加的时候 写入数据后 不提交的到表里  我要插入多条数据后  才提交到表里  也就是在gridview外面有个确定按钮   点击确定按钮的时候  才把gridview里我增加的多条信息插入到表里。这个怎么实现啊,谢谢各位了,帮我解决一下吧,在线等。。

解决方案 »

  1.   

    那就让GridView绑定到一个临时对象(或DataTable)上,每加一行时是向这个临时表增加行,再把这个临时表绑定到GridView,按GridView外面的按钮时,就把临时表中你标记为新增的行插入到数据库。关键就是让GridView绑定一个临时数据源。
      

  2.   

    用datatable来保存新增或修改的数据,当保存的时候再更新回数据库
      

  3.   

       protected void Page_Load(object sender, EventArgs e)
        {        if (!IsPostBack)
            {
                DataTable dt = new DataTable();//从数据库提出来
                dt.Columns.Add("isnewrow");
                this.ViewState.Add("BindTable", dt);
                BindData();
            }
        }    private void BindData()
        {
            DataTable dt = (DataTable)this.ViewState["BindTable"];
            //绑定数据
        }    private void AddData(string address)
        {
            DataTable dt = (DataTable)this.ViewState["BindTable"];
            DataRow dr = dt.NewRow();
            dr["address"] = address;
            dr["isnewrow"] = "1";
            dt.Rows.Add(dr);
            this.ViewState.Add("BindTable", dt);
            BindData();
        }    private void SaveData()
        {
            DataTable dt = (DataTable)this.ViewState["BindTable"];
            DataRow[] drs = dt.Select("isnewrow='1'");
            //把drs行存入数据库
            //设置drs行的isnewrow值不为1
        }
      

  4.   

    for (int i = 0; i < GridView1.Rows.Count; i++)
                {
                    string t1 = (GridView1.Rows[i].FindControl("txtBox1") as TextBox).Text;
                    string t2 = (GridView1.Rows[i].FindControl("txtBox2") as TextBox).Text;
                    ............
                    数据库的操作
                }