当我点击“增加”按钮时,GridView会自动生成新的一行。这样的代码怎么写(C#)???
请高手指点~~~O(∩_∩)O谢谢

解决方案 »

  1.   

    你想新加的那一行是有数据的,还是空的?
    做法就是在gridview的数据源上加一行,假设你给gridview.datasource赋的值是dt
    那就是给dt加一行,dr = dt.Newrow     dr(0) = ...  dr(1) = ...  dt.AddRow(dr)
    然后把加了一行后的dt,重新赋给gridview的datasource,然后gridview.databind()
      

  2.   

    方法一.用xml+webservice做一個偽gridview。
    方法二.就是點增加,datatable新增一行,然後gridview再綁定這個新的datatable.
      

  3.   

    继承模板类 
      ICollection CreateDataSource()
        {
            DataTable dt = new DataTable();
            DataRow dr;
            dt.Columns.Add(new DataColumn("id", typeof(Int32)));
            dt.Columns.Add(new DataColumn("text", typeof(string)));
            for (int i = 0; i < 6; i++)
            {
                dr = dt.NewRow();
                dr[0] = i;
                dr[1] = "列表" + i.ToString();
                dt.Rows.Add(dr);
            }
            DataView dv = new DataView(dt);
            return dv;
        }
        public class GridViewTemplate : ITemplate
        {
            private DataControlRowType dcrType;
            private string columnName;
            public GridViewTemplate(DataControlRowType type, string colname)
            {
                dcrType = type;
                columnName = colname;
            }
            public void InstantiateIn(System.Web.UI.Control container)
            {
                switch (dcrType)
                {
                    case DataControlRowType.Header:
                        Literal literal = new Literal();
                        literal.Text = columnName;
                        container.Controls.Add(literal);
                        break;
                    case DataControlRowType.DataRow:
                        DropDownList ddl = new DropDownList();
                        ddl.ID = "dropdownlist";
                        ddl.AppendDataBoundItems = true;
                        ddl.Items.Add(new ListItem("-----请选择------", ""));
                        ddl.Items.Add(new ListItem("AA", "a"));
                        ddl.Items.Add(new ListItem("BB", "b"));
                        ddl.Items.Add(new ListItem("CC", "c"));
                        container.Controls.Add(ddl);
                        break;
                    default:
                        break;
                }
            }
        }
        protected void Button1_Click(object sender, EventArgs e)
        {
            for (int index = 1; index < GridView1.Columns.Count; index++)
            {
                GridView1.Columns[index].Visible = false;
            }
            for (int i = 0; i < Convert.ToInt32(DropDownList1.SelectedValue); i++)
            {
                TemplateField tf = new TemplateField();
                tf.ShowHeader = true;
                tf.HeaderTemplate = new GridViewTemplate(DataControlRowType.Header, "动态添加列");
                tf.ItemTemplate = new GridViewTemplate(DataControlRowType.DataRow, "");
                GridView1.Columns.Add(tf);
                GridView1.DataSource = CreateDataSource();
                GridView1.DataBind();
            }
        }
      

  4.   

    DataTable dt = new DataTable();        dt.Columns.Add("id");
            dt.Columns.Add("name");
            DataRow dr = dt.NewRow();
            dr["id"] = "";
            dr["name"] = "";
            dt.Rows.Add(dr);       this.GridView1.DataSource = dt;
           this.GridView1.DataBind();
          GridView1.EditIndex =dt.Rows.Cunt -1; 
         dt.Dispose();
    http://topic.csdn.net/u/20090115/11/0674c008-c204-428a-a3f4-1bc726cd0fae.html
      

  5.   

    如果你想通过新增行填写gridview值,可以通过footer模板列,前台可以这么写模板
    <asp:TemplateField HeaderText="产品名称">
    <FooterTemplate>
    <asp:TextBox ID="ProcessPriceA" onblur="price();" runat="server"></asp:TextBox>
    </FooterTemplate>
    </asp:TemplateField>
    后台按钮事件
    protected void add_Click(object sender, EventArgs e)
        {
            GridView1.ShowFooter = true;
            GridView1.DataSource = DT;
            GridView1.DataBind();
        }
    把footer模板显示出来
    然后在footer模板列中做个确定按钮把新增的数据填写到数据源中,重新绑定下gridview,就ok了!
    当然这个过程没那么简单,需要代码,可以找我!
      

  6.   

    在新增时给绑定数据源加一空行数据。楼上已经说了。保存GRIDVIEW有个GridView1_Updating事件,在该事件写个要插入的数据即可。 
    给你个例子,判断是新增还是更新。注意AddRow值 
    protected void GridView1_Updating(object sender, GridViewUpdateEventArgs e)
        {
              if (AddRow == true)
            {
           string sSql = "insert into *** values(*****)";            Grid.ExeSql(sSql);        }
            else
            {
                string sSql = "update *** set ****'";            Grid.ExeSql(sSql);        }
      
            AddRow = false;
        }
      

  7.   

      在点击按钮新增一行的时候
           DataSet ds = new DataSet();
             ds = ....
            DataTable dt = ds.Tables[0];
            if (dt.Rows.Count >= 0)
            {
                DataRow dr = dt.NewRow();
                dt.Rows.Add(dr);
            }
            this.GridView1.DataSource = dt;
            GridView1.DataBind(); 
      

  8.   

    这个代码示例里面有,你自己看看
    http://files.cnblogs.com/huangjianhuakarl/Gridview.rar
      

  9.   

    在”增除删改“中的GridviewInsertRecord.aspx页面就是,通过footer模板列,完全能实现你想要效果