C# 如何以编程方式在按钮单击处理程序中将新行添加到gridview?

C# 如何以编程方式在按钮单击处理程序中将新行添加到gridview?,c#,asp.net,C#,Asp.net,这是我的标记: <asp:Button runat="server" ID="btnabc" Text="Hello" onclick="abc_Click" /> <br /> <br /> <asp:GridView runat="server" ID="test" AutoGenerateColumns="false"> <Columns> <asp:TemplateF

这是我的标记:

 <asp:Button runat="server" ID="btnabc" Text="Hello" 
        onclick="abc_Click" /> <br /> <br />



   <asp:GridView runat="server" ID="test" AutoGenerateColumns="false">
    <Columns>
        <asp:TemplateField>

            <ItemTemplate>
                <asp:TextBox runat="server" ID="txt" Text = "<%# Container.DataItem %>" />
            </ItemTemplate>
        </asp:TemplateField>
    </Columns>
   </asp:GridView>

我找不到任何像
gridview.Rows.Add()这样的方法,您没有。但是您可以简单直接地向网格的数据源添加一个新项,您就完成了。

尝试向数据源对象添加一行,然后重新绑定GridView。

是的,这是最简单的方法,但我正在尝试以编程方式添加控件。gridview.Controls.Add(行);其中row是GridViewRow工作的实例。但这只适用于第一次。知道为什么吗?是的:当你这样做时,它不会进入ViewState,所以它会丢失。每次回邮你都得继续这样做。说真的,最好还是处理数据源。您确实意识到,比如说,对象列表可以是一个数据源,对吗?也许你们可以探索一下。是的,我知道你们可以设置列表,并根据你们的gridview模板来布局项目。正如我所说的,最简单也是最好的解决方案!但我只是尝试一些新的东西,但我明白这是不可能的。谢谢。从技术上讲,这是可能的。这比管理一个简单的自定义对象列表需要更多的工作。希望有帮助:)
 protected void abc_Click(object sender, EventArgs e)
        {

        }