【问题标题】:How can I find the RepeaterItem I have clicked?如何找到我点击的 RepeaterItem?
【发布时间】:2011-08-01 15:54:30
【问题描述】:

我正在创建一个带有Repeater 控件的简单ASP 页面。这个中继器控件包含 LinkBut​​tons;因此,随着中继器项目大小的增加,LinkBut​​tons 的数量也会增加。我的问题是,如何唯一标识我单击 LinkBut​​ton 的 RepeaterItem?

我虽然使用 Foreach 来搜索 RepeaterItems,但我不知道应该使用什么条件来识别我点击的链接按钮。顺便说一下,每个 LinkBut​​ton 都有相同的名称和相同的 ID。

我的目标是获取该链接按钮所属的RepeaterItem

谢谢, 是的

【问题讨论】:

    标签: asp.net


    【解决方案1】:
    • 为您的 LinkBut​​ton 分配 Command/ComandArgument
    • 为您的中继器分配处理程序“OnCommand”并创建事件处理程序
    • 在处理程序中你会得到 RepeaterCommandEventArgs - 使用 item 属性来访问

    【讨论】:

    • 另外,通过您的解决方案,我可能会得到链接按钮。我的目标是获取该 Linkbutton 所属的 RepeaterItem。
    • @Y_Y per msdn: "Item - 获取与事件关联的 RepeaterItem。" - 所以不用担心你得到的不是 LinkBut​​ton。例如看 MSDN:msdn.microsoft.com/en-us/library/…
    【解决方案2】:


    您可以使用:
    - LinkBut​​ton 的标记属性以存储对象以识别 LinkBut​​ton
    - 在中继器模板中包含隐藏字段,用于存储标识链接按钮的内容。
    - 使用 LinkBut​​ton
    的 CommandArgument - ...

    【讨论】:

      【解决方案3】:

      你可以看看使用什么叫做“ItemCommand”

      或者您可以设置 LinkBut​​ton 的 CommandArgument。

      protected void lnkButton_Click(object sender, EventArgs e) {
          LinkButton _sender = (LinkButton)sender;
          string argument = _sender.CommandArgument;
      }
      

      【讨论】:

        【解决方案4】:

        此方案的常见解决方案是使用按钮的 CommandName 和/或 CommandArgument 属性。只需将 CommandArgument 绑定到您放入转发器的对象的 ID。可以在点击处理程序中访问命令参数。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2019-08-10
          • 2011-12-23
          相关资源
          最近更新 更多