我想从用户控件调用一个方法到aspx页面
我正在尝试,但我无法在 aspx 页面中调用该方法
代码:
AddVisaUserControl.ascx.cs
public event EventHandler UserControlButtonClicked;
public void OnUserControlButtonClick()
{
if (UserControlButtonClicked != null)
{
UserControlButtonClicked(this,EventArgs.Empty);
}
}
protected void btnRemove_Click(object sender, EventArgs e)
{
OnUserControlButtonClick();
}
.aspx
编辑
在下面的代码中,当页面加载时出现“空引用错误”
AddVisaControl av;
protected void Page_Load(object sender, EventArgs e)
{
av.UserControlButtonClicked += new
EventHandler(AddVisaUserControl_UserControlButtonClicked);
}
private void AddVisaControl_UserControlButtonClicked(object sender, EventArgs e)
{
var ctrl = (AddVisaControl)LoadControl(@"AddVisaControl.ascx");
//ctrl.ID = i;
this.rpt1.Controls.Remove(ctrl);
}
有什么想法吗?提前致谢
最佳答案
您似乎有一个未初始化的字段:
AddVisaControl av;
其默认值为 null,因此为 NullReferenceException。
如果您已将 UserControl 的实例添加到您的 aspx 页面,您应该有一个名称等于 UserControl 实例 ID 的实例:
=== 在 Page.aspx 中
<uc1:AddVisaUserControl ID="MyControl" ... />
=== 在 Page.aspx.cs 中
MyControl.UserControlButtonClicked += ...
关于c# - 如何从用户控件调用一个方法到aspx页面?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19027066/