如何在页面加载中以编程方式调用我的.net按钮的onclick?

时间:2009-08-21 00:30:27

标签: asp.net webforms

我有一个onclick事件,如:

public void OnMyButton_Click(object sender, EventArgs e)

如何从pageload中调用它?

5 个答案:

答案 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 });
}
相关问题