向ASP.NET CheckBox添加或附加OnItemCommand事件处理程序

时间:2011-10-18 09:25:17

标签: asp.net checkbox repeater

我想知道是否可以添加或附加或扩展asp.net复选框,以添加OnCommand,CommandName,CommandArgument功能。

简而言之,我想添加一个asp。 net CheckBox具有像Button或LinkBut​​ton这样的OnCommand功能。

我想在Repeater ItemTemplate中放置一个复选框,并希望处理OnItemCommand处理程序中的复选框点击。

3 个答案:

答案 0 :(得分:1)

我用一个简单的技巧解决了我的问题。我使用复选框和不可见的链接按钮创建了一个Web用户控件。

<asp:CheckBox ID="cbSelector" runat="server" AutoPostBack="true" />
<asp:LinkButton ID="btnHiddenCheckBox" runat="server" Visible="false" CommandName="Select"></asp:LinkButton>

在后面的代码中我添加了一些事件处理程序......

  protected void Page_Load(object sender, EventArgs e)
  {
     cbSelector.CheckedChanged += new EventHandler(cbSelector_CheckedChanged);
  }

  void cbSelector_CheckedChanged(object sender, EventArgs e)
  {
      btnHiddenCheckBox.CommandName = "Select";
      btnHiddenCheckBox.CommandArgument = Convert.ToString(cbSelector.Checked);
      ((IPostBackEventHandler)btnHiddenCheckBox).RaisePostBackEvent(null);
  }

以编程方式引发带参数的Click事件,它可以正常工作。

答案 1 :(得分:0)

使用OnCheckChanged事件可以实现同样的效果。

您可以在同一RepeaterItem

中找出RepeaterItem能够访问控件的内容

或者,请参阅此SO question以获取有关如何OnItemCommand使用CheckBox的解决方案:

Checkbox OnClick/ItemCommand in Repeater or DataList

答案 2 :(得分:0)

Patrik我将建议你完全不同的东西,使用JQuery并通过Ajax完成这项工作,以便为用户提供更流畅的体验。

这里有一篇很好的文章,一步一步:ASP.Net CheckBox and JQuery

一切都比CheckBoxButton更好,AutoPostBack现在很快就会在2011年,2012年设置为真; - )