我想知道是否可以添加或附加或扩展asp.net复选框,以添加OnCommand,CommandName,CommandArgument功能。
简而言之,我想添加一个asp。 net CheckBox具有像Button或LinkButton这样的OnCommand功能。
我想在Repeater ItemTemplate中放置一个复选框,并希望处理OnItemCommand处理程序中的复选框点击。
答案 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
的解决方案:
答案 2 :(得分:0)
Patrik我将建议你完全不同的东西,使用JQuery
并通过Ajax完成这项工作,以便为用户提供更流畅的体验。
这里有一篇很好的文章,一步一步:ASP.Net CheckBox and JQuery
一切都比CheckBox
或Button
更好,AutoPostBack
现在很快就会在2011年,2012年设置为真; - )