且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

如何在网格视图中添加行

更新时间:2023-10-19 17:51:22

检查此线程.
在每次单击按钮时向GridView添加新行 [ ^ ]
check this thread.
Add new row to GridView on each button-Click[^]


我的aspx代码:
my aspx code:
<div>
        <asp:GridView runat="server" ID="grdview">
            <Columns>
                <asp:TemplateField>
                    <ItemTemplate>
                        <asp:DropDownList runat="server" ID="Select_Spin2" AutoPostBack="true" OnSelectedIndexChanged="Select_Spin2_IndexChanged">
                            <asp:ListItem Text="First" Value="1" />
                            <asp:ListItem Text="Second Value="2" />

                        </asp:DropDownList>
                    </ItemTemplate>
                </asp:TemplateField>
            </Columns>
        </asp:GridView>
    </div>




我后面的代码




My code behind

public partial class _Default : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            DataTable dt = new DataTable();
            DataRow dr = dt.NewRow();
            dt.Rows.Add(dr);            
            grdview.DataSource = dt;
            grdview.DataBind();
        }
    }


    protected void Select_Spin2_IndexChanged(object sender, EventArgs e)
    {
        DataTable dt = new DataTable();
        dt.Columns.Add("Column1");
        DataRow dr = dt.NewRow();
        foreach (GridViewRow gvr in grdview.Rows)
        {
            dr = dt.NewRow();
            dr["Column1"] = ((DropDownList)gvr.Cells[0].FindControl("Select_Spin2")).SelectedValue;
            dt.Rows.Add(dr);
        }
        DataRow dr1 = dt.NewRow();
        dt.Rows.Add(dr1);
        grdview.DataSource = dt;
        grdview.DataBind();
        foreach (GridViewRow row in grdview.Rows)
        {
            DropDownList ddl = row.FindControl("Select_Spin2") as DropDownList;
            ddl.SelectedValue = row.Cells[1].Text;
        }
        

    }
}


<asp:gridview ID="Gridview1" runat="server" ShowFooter="true" AutoGenerateColumns="false">
        <Columns>
        <asp:BoundField DataField="RowNumber" HeaderText="Row Number" />
        <asp:TemplateField HeaderText="Header 1">
            <ItemTemplate>
                <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
            </ItemTemplate>
        </asp:TemplateField>
        <asp:TemplateField HeaderText="Header 2">
            <ItemTemplate>
                <asp:TextBox ID="TextBox2" runat="server"></asp:TextBox>
            </ItemTemplate>
        </asp:TemplateField>
        <asp:TemplateField HeaderText="Header 3">
            <ItemTemplate>
                 <asp:TextBox ID="TextBox3" runat="server"></asp:TextBox>
            </ItemTemplate>
            <FooterStyle HorizontalAlign="Right" />
            <FooterTemplate>
             <asp:Button ID="ButtonAdd" runat="server" Text="Add New Row" />
            </FooterTemplate>
        </asp:TemplateField>
        </Columns>
</asp:gridview>