[英]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.