我需要为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以完全相同的方式捕获命令,或者执行您喜欢的任何操作.您可以完全控制它使其按您需要的方式运行,而不受使用常规预定义列类型的内置功能的约束.