首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >LinkButton CommandName和CommandArgument

LinkButton CommandName和CommandArgument
EN

Stack Overflow用户
提问于 2012-11-13 23:00:35
回答 4查看 59.2K关注 0票数 18

我在理解与ASP.NET LinkButton关联的CommandNameCommandArgument时遇到了问题。我已经在这个网站上读到了这篇文章- http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.button.commandname.aspx和其他问题。

我想我的问题是--什么是“命令”?CommandName基本上可以是任何文本吗?我以“排序”和“提交”为例。而对于CommandArgument,这只是用来进一步指定“命令”的类型。对,是这样?非常感谢你的帮助。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2012-11-13 23:02:54

Command可以是你想要的任何东西。

基本的想法是,如果你说有一个中继器,在这个中继器中你有多个选项,你可以给每个选项一个不同的CommandName。然后,CommandArgument将基于线路的唯一标识符。

然后,在回发时,您可以检查触发了哪个CommandName,并基于此使用CommandArgument中的值

例如,标记可能类似于...

代码语言:javascript
复制
<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>

然后你的post-pack处理程序可以检查哪一个被点击了…

代码语言:javascript
复制
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
票数 29
EN

Stack Overflow用户

发布于 2012-11-13 23:59:23

CommandName可以是任何字符串yes。,但要当心!ASP.NET会以一种特殊的方式处理某些字符串。例如,如果在GridView列中有一个CommandName为“”的Button控件,它将引发OnDeleting事件,并且CommandArgument将被设置为该按钮所在的GridViewRow的行索引。否则,就像其他人发布的那样,您可以使用CommandNameCommandArgument,不过这最适合您的环境。

通常,您将在绑定期间将CommandArgument设置为控件父容器的行索引,并将CommandName设置为对应用程序域有意义的内容,例如“UpdateFoo”。然后在OnRowCommand事件处理程序中使用它来确定单击了哪个按钮,从而确定要执行的业务逻辑。

票数 5
EN

Stack Overflow用户

发布于 2012-11-13 23:09:48

CommandName是您在事件被触发时实际执行的操作,CommandArgument当然是与process相关的参数。如果您在中继器或类似的列表项中使用链接按钮,则更有意义。在这种情况下,你的CommandName可以是“删除”,“编辑”,“发布”,对于这个过程,你需要知道你正在处理的是哪条记录,'CommandArgument‘是你的方式,在这种情况下,你可以给它分配ID或逗号分隔的数据来处理。

当然你也可以用它来合并类似的事件"Sort“就是一个很好的例子,因为你可以给”CommandArgument“作为"Price asc","Date asc","Date desc”所有你的链接按钮触发事件。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13363061

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档