2013-05-21 100 views
0

这就是我在ASP.NET C#项目中创建网格视图的方式。这个网格有4列。我想添加第5列并在每一行添加一个按钮。我怎样才能做到这一点 ?将按钮添加到GridView的最后一列

<asp:GridView ID="gv" runat="server" CellPadding="1" Width="900px"/> 
+0

我建议增加一个按钮电网的外面,如果你得到大量的行然后每格呈现时,所有的按钮得到渲染和表现会下降。 –

+0

可能重复的[放置按钮作为最后一列在gridview](http://stackoverflow.com/questions/9942668/place-button-as-last-column-in-gridview)或[在gridview中最后一列添加删除按钮](http://stackoverflow.com/questions/16542092/add-delete-button-at-last-column-in-gridview) –

回答

0
  1. 设置在GridView标记
  2. 定义列作为BoundField(或TemplateField,如果你愿意的话)
  3. 为按钮添加TemplateField在最后一列

总结一下AutoGenerateColumns="False"

<asp:GridView runat="server" ID="gv" AutoGenerateColumns="False" CellPadding="1" Width="900px"> 
    <Columns> 
     <%-- <asp:BoundField /> Definitions here --%> 
     ... 
     <asp:TemplateField> 
      <ItemTemplate> 
       <asp:Button Text="Click ME" runat="server" ID="btn" OnClick="Clicked" />   
      </ItemTemplate> 
     </asp:TemplateField> 
    </Columns> 
</asp:GridView> 
+0

怎么样''?我应该在我的'GridView'结尾添加你的代码吗? –

+0

您需要手动定义列(在标记中)为'AutoGenerateColumns'需要设置为False;请参阅稍微更新的答案 – mshsayem

+0

在我添加行AutoGenerateColumns =“False”后,其他列未显示。我该如何解决这个问题?当它是'AutoGenerateColumns ='True'时,它将该列添加到网格的开始处。 –

-1

假设你绑定的数据表有4列col1,col2,col3和col4

那么你在.aspx中的网格视图就像;

<asp:GridView runat="server" ID="gv" AutoGenerateColumns="False" CellPadding="1"     Width="900px" OnRowCommand="gv_RowCommand"> 
<Columns> 
    <asp:TemplateField HeaderText="col1"> 
     <ItemTemplate> 
      <%#Eval("col1")%>// "col1" is field of your database 
     </ItemTemplate> 
    </asp:TemplateField> 

    <asp:TemplateField HeaderText="col2"> 
     <ItemTemplate> 
      <%#Eval("col2")%> 
     </ItemTemplate> 
    </asp:TemplateField> 

    <asp:TemplateField HeaderText="col3"> 
     <ItemTemplate> 
      <%#Eval("col3")%> 
     </ItemTemplate> 
    </asp:TemplateField>      

    <asp:TemplateField HeaderText="col4"> 
     <ItemTemplate> 
      <%#Eval("col4")%> 
     </ItemTemplate> 
    </asp:TemplateField> 

    <asp:TemplateField> 
     <ItemTemplate> 
      <asp:Button ID="btnOK" runat="server" Text="OK" CommandName="show" /> 
     </ItemTemplate> 
    </asp:TemplateField> 
</Columns> 
</asp:GridView> 

* 的.cs页面将被*

protected void gv_RowCommand(object sender, GridViewCommandEventArgs e) 
{ 
    if (e.CommandName.ToLower() == "show") 
    { 
    //your code on click event 
    } 
} 
+0

谢谢,但我得到一个错误,当我点击按钮,它说'无效的回发或回调参数。事件验证使用'启用。任何线索? –

+0

我已经更新了答案,请检查它。 –

+0

我仍然得到相同的错误。 '回发或回调参数无效。使用' –