2011-09-27 60 views
2

这是我的标记:如何以编程方式将新行添加到按钮单击处理程序上的gridview?

<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> 

这是我的按钮单击处理程序:

protected void abc_Click(object sender, EventArgs e) 
     { 

     } 

我找不到像gridview.Rows.Add()任何方法。

回答

2

你不知道。但是你可以简单而直接地将一个新项目添加到你的网格的数据源中,并且你完成了。

+0

是的,这是最简单的方法,但我试图以编程方式添加控件。 gridview.Controls.Add(行);其中row是GridViewRow的实例。但这只适用于第一次。任何想法为什么? – TCM

+0

是的:当你这样做,它不会去ViewState,所以它会丢失。每回发一次,你都必须继续这样做。说真的,你最好是处理DataSource。你意识到,比方说,一个对象列表可以是一个数据源,对吗?也许你可以探索一下。 –

+0

是的我意识到你可以设置列表,并根据你的GridView模板它将布局项目。正如我所说的最简单和最好的解决方案!但我只是在尝试新的东西,但我知道这是不可能的。谢谢。 – TCM

1

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

相关问题