2013-05-21 134 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

我仍然得到相同的錯誤。 '回發或回調參數無效。使用' –