I'm having trouble understanding CommandName
and CommandArgument
associated with an ASP.NET LinkButton. I have read this article - http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.button.commandname.aspx and other questions on this site.
I guess my questions are - what exactly is a "Command"? Can a CommandName
basically be any text? I see "Sort" and "Submit" as examples. And as for CommandArgument
, this is just used to further specify the type of "Command". Correct?
Thanks very much for your help.
A Command
can be anything you want it to be.
The basic idea is that if you say have a repeater, and in that repeater you have multiple options, you can give each option a different CommandName
. The CommandArgument
would then be based on the unique identifier of the line.
Then on the post-back you can check which CommandName
was fired and based on that use the value in the CommandArgument
For Example, the mark-up could look something like...
<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>
Then your post-pack handler could check to see which one was clicked...
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