用户控件点击事件

4
在用户控件中,我有一个自定义按钮。我正在将此用户控件用于aspx页面。当用户控件中的按钮被点击时,应该清除aspx页面中的复选框和标签。请问如何实现?
4个回答

4
在您的用户控件中,您需要创建一个公共事件处理程序。
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
}

2

前段时间我也需要进行类似的实现,最终创建了一个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

 }

当然,还有其他的实现方式可以让你在以后的时间中扩展/增强你的应用程序。

祝好


1

如果您不介意进行回传,最简单的方法是将事件处理程序添加到按钮的OnClick事件中,然后在事件处理程序中手动将CheckBoxes的IsChecked属性设置为false,将标签的Text属性设置为空字符串。


1
我认为这并没有直接回答所提出的问题。问题不是如何在 postback 时清除复选框和标签,而是当用户控件中的按钮被点击时,在 ASP.NET 页面上如何清除复选框和标签。 - Scott Mitchell

1

您需要在用户控件中创建一个事件,并在单击用户控件中的按钮时引发该事件。然后,在 ASP.NET 页面中,您将为该用户控件事件创建一个事件处理程序,并在此事件处理程序中根据需要清除复选框和标签控件。

请查看本文:在内容页和主控页之间传递信息,重点关注标题为从主控页向其内容页传递信息的部分。本文的这一部分展示了如何在内容页中执行某些操作,当用户在主控页上执行某些操作(例如单击按钮)时。这个概念与您想要使用用户控件做的事情是相同的。

此外,您可能会发现这个教程有帮助:从主控页与内容页交互。这两篇文章都有 C# 和 VB 的示例代码。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接