我在ascx文件中有一个按钮,我想在单击此按钮时调用我的abc.aspx.cs文件的方法。 有没有办法从ascx.cs文件中执行此操作? 这是我的按钮
<asp:ImageButton ID="ImageButton1" Style="padding-top: 80px; margin-right:10px;" runat="server" ImageUrl="~/App_Themes/Default/Images/Login/NH/DownloadButton.jpg" />
答案 0 :(得分:1)
为了在没有耦合页面和用户控件的情况下以干净的方式执行此操作,您可以在父aspx表单订阅的用户控件中创建一个事件。
有关C#中事件的详细信息,请参阅此link。
public class MyUserControl : UserContro
{
public event EventHandler ImageButtonClicked;
private void ImageButton1_Click(object sender, EventArgs e)
{
if (ImageButtonClicked != null) // Check against null as there may not be any subscribers
ImageButtonClicked(this, EventArgs.Empty);
}
// ...
}
<!-- ... -->
<uc:MyUserControl ID="myUserCtrl" runat="server" ImageButtonClicked="myUserCtrl_ImageButtonClicked" />
<!-- ... -->
// ...
private void myUserCtrl_ImageButtonClicked(object sender, EventArgs e)
{
// Call method on page.
}
// ...
请注意,该活动没有或有许多订阅者。如果要将数据传输到事件处理程序,则需要创建自己的EventArgs实现并使用这些实例而不是EventArgs.Empty
。这也允许您检查事件是否已由订阅者处理,您可以向EventArgs添加Handled
布尔属性,该事件由事件处理程序设置并在之后在用户控件中进行评估。
答案 1 :(得分:0)
在asp.net中没有这样的功能但你可以使用通用处理程序(.ashx)而不是这个
答案 2 :(得分:0)
您可以使用this.Page
在aspx Page中定义一个公共方法((YourASPXPage)(this.Page)).MyMethod();
在ASPX页面
public void MyMethod()
{
//Your code
}