我有一个onclick事件,如:
public void OnMyButton_Click(object sender, EventArgs e)
如何从pageload中调用它?
答案 0 :(得分:8)
事件处理程序只是常规方法 - 你可以从他们定义的类中的任何地方调用它们 - 所以Dan的答案在技术上是正确的,尽管我觉得他遗漏了一些最佳实践建议。
您应该将事件处理程序中的代码移动到另一个方法中,然后在click事件处理程序和页面加载方法中调用该方法,而不是从load事件中调用事件处理程序。
答案 1 :(得分:6)
直接调用该方法。
OnMyButton_Click(this, EventArgs.Empty);
当然,如果您发现自己以编程方式触发UI事件,则可能需要重新考虑页面结构。
答案 2 :(得分:4)
将click事件处理程序内部的代码重构为单独的方法并调用新方法。
答案 3 :(得分:0)
OnMyButton_Click(this.OnMyButton, null);
答案 4 :(得分:0)
此功能是您所需要的:
public static void DoClick(this System.Web.UI.WebControls.Button btn)
{
System.Reflection.MethodInfo m = typeof(System.Web.UI.WebControls.Button)
.GetMethod("OnClick", System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance);
m.Invoke(btn, new object[] { EventArgs.Empty });
}