在用户控件中,我有一个自定义按钮。我正在将此用户控件用于aspx页面。当用户控件中的按钮被点击时,应该清除aspx页面中的复选框和标签。请问如何实现?
public event EventHandler UpdateParentPage;
protected void btn_Click(object sender, EventArgs e)
{
if (this.UpdateParentPage != null)
UpdateParentPage(sender, e);
}
userControl.UpdateParentPage+= new EventHandler(userControl_UpdateParentPage);
然后,在您的父页面上实现新的事件处理程序:
protected void userControl_UpdateViewState(object sender, EventArgs e)
{
//clear your checkboxes and label here
}
前段时间我也需要进行类似的实现,最终创建了一个Reset-Button-Click事件处理程序。
最终得到了一个非常简单的代码:
protected void ButtonReset_Click(object sender, EventArgs e) {
if (!TextBox1.Enabled || !ButtonSubmit.Enabled) {
TextBox1.Enabled = true;
ButtonSubmit.Enabled = true;
}
VieStateData.ResetSession(); // Created a dedicated class to handle the data and session state
TextBox1.Text = string.Empty;
TextBox2.Text = string.Empty;
// More controls to modify
}
当然,还有其他的实现方式可以让你在以后的时间中扩展/增强你的应用程序。
祝好
如果您不介意进行回传,最简单的方法是将事件处理程序添加到按钮的OnClick事件中,然后在事件处理程序中手动将CheckBoxes的IsChecked属性设置为false,将标签的Text属性设置为空字符串。
您需要在用户控件中创建一个事件,并在单击用户控件中的按钮时引发该事件。然后,在 ASP.NET 页面中,您将为该用户控件事件创建一个事件处理程序,并在此事件处理程序中根据需要清除复选框和标签控件。
请查看本文:在内容页和主控页之间传递信息,重点关注标题为从主控页向其内容页传递信息的部分。本文的这一部分展示了如何在内容页中执行某些操作,当用户在主控页上执行某些操作(例如单击按钮)时。这个概念与您想要使用用户控件做的事情是相同的。
此外,您可能会发现这个教程有帮助:从主控页与内容页交互。这两篇文章都有 C# 和 VB 的示例代码。