[英]asp.net gridview: How can I have multiple button fields in one column?
我需要為gridview創建多個動作 - 比如“Approve”,“Deny”和“Return”。
我可以通過為每個操作創建一個按鈕字段來完成此操作:
<asp:ButtonField ButtonType="Link" CommandName="Approve" Text="Approve" />
<asp:ButtonField ButtonType="Link" CommandName="Deny" Text="Deny />
<asp:ButtonField ButtonType="Link" CommandName="Return" Text="Deny" />
但是,這會為每個按鈕創建一列。
有沒有辦法擁有相同的功能,但將它們組合成一個列?
你考慮過使用TemplateField
嗎? 這是一個例子:
<asp:GridView ID="grdTest" runat="server">
<Columns>
<asp:TemplateField>
<ItemTemplate>
<asp:LinkButton ID="btnApprove" runat="server" CommandName="Approve" Text="Approve" />
<asp:LinkButton ID="btnDeny" runat="server" CommandName="Deny" Text="Deny" />
<asp:LinkButton ID="btnReturn" runat="server" CommandName="Return" Text="Return" />
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
然后,您可以使用OnRowCommand
以完全相同的方式捕獲命令,或者執行您喜歡的任何操作。 您可以完全控制它使其按您需要的方式運行,而不受使用常規預定義列類型的內置功能的約束。
嘗試將按鈕放入<asp:TemplateField>
:
<asp:TemplateField>
<ItemTemplate>
<asp:LinkButton CommandName="Approve" Text="Approve" />
<asp:LinkButton CommandName="Deny" Text="Deny />
<asp:LinkButton CommandName="Return" Text="Deny" />
</ItemTemplate>
</asp:TemplateField>
解決方案不是使用ButtonField元素。
要完成您想要的任務,您需要創建一個列作為TemplateField
並在TemplateField
的ItemTemplate
或EditItemTemplate
中將<asp:Button id="myButton" />
定義為常規ASP.NET <asp:Button id="myButton" />
,以適合您的UI。
您可以在GridView_OnItemCommand()
處理程序中處理Click事件,您可以在其中檢查e.CommandName
以確切地確定導致事件的按鈕。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.