我在理解与ASP.NET LinkButton关联的CommandName
和CommandArgument
时遇到问题。我已阅读此文章-http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.button.commandname.aspx以及本网站上的其他问题。
我想我的问题是-“命令”到底是什么? CommandName
基本上可以是任何文本吗?我以“排序”和“提交”为例。至于CommandArgument
,它仅用于进一步指定“命令”的类型。正确?
非常感谢您的帮助。
最佳答案
Command
可以是您想要的任何内容。
基本思想是,如果您说有一个中继器,并且在该中继器中有多个选项,则可以为每个选项指定不同的CommandName
。然后,CommandArgument
将基于该行的唯一标识符。
然后,在回发后,您可以检查触发了哪个CommandName
,并根据该使用情况使用CommandArgument
中的值
例如,标记看起来可能类似于...
<asp:Repeater runat="server" id="myRepeater">
<ItemTemplate>
<div>
<asp:LinkButton runat="server" id="lnkEdit" CommandName="edit"
CommandArgument="<%#Container.DataItem.Id%>" Text="Edit"
OnClick="OnClickHandler" />
<asp:LinkButton runat="server" id="lnkDelete" CommandName="delete"
CommandArgument="<%#Container.DataItem.Id%>" Text="Delete"
OnClick="OnClickHandler" />
</div>
</ItemTemplate>
</asp:Repeater>
然后,您的后包装处理程序可以检查查看单击了哪个...
Protected Sub OnClickHandler(ByVal sender As Object, ByVal e As EventArgs)
Dim lnk as LinkButton = CType(sender,LinkButton)
Select Case lnk.CommandName
Case "edit"
EditItem(lnk.CommandArgument)
Case "delete"
DeleteItem(lnk.CommandArgument)
End Select
End Sub