我在aspx文件中有一个名为btnTest的按钮。当单击该按钮时,.cs文件会调用一个函数。
btnTest_Click(object sender, EventArgs e)
我怎样才能在我的代码中调用这个函数(即不需要实际点击按钮)?我在aspx文件中有一个名为btnTest的按钮。当单击该按钮时,.cs文件会调用一个函数。
btnTest_Click(object sender, EventArgs e)
我怎样才能在我的代码中调用这个函数(即不需要实际点击按钮)?btnTest_Click(null, null);
假设该方法没有使用这两个参数(通常情况下确实不会使用它们),
但说实话,这样做很棘手。如果您有需要被调用的代码,则应遵循以下约定:
protected void btnTest_Click(object sender, EventArgs e)
{
SomeSub();
}
protected void SomeOtherFunctionThatNeedsToCallTheCode()
{
SomeSub();
}
protected void SomeSub()
{
// ...
}
btnTest_Click( this, new EventArgs() );
所有上述方法都不太好,因为您可能会更改事件函数名称。最简单的方法是:
btnTest.PerfromClick();
OnClick
方法,从而触发单击事件处理程序。虽然我感到有些不舒服,但这确实有效...MethodInfo clickMethodInfo = typeof(Button).GetMethod("OnClick", BindingFlags.NonPublic | BindingFlags.Instance);
clickMethodInfo.Invoke(buttonToInvoke, new object[] { EventArgs.Empty });
如果这个方法没有使用到sender
或e
,那么你可以调用:
btnTest_Click(null, null);
只需调用:
btnTest_Click(null, null);
只需确保您没有尝试在函数中使用这两个参数。
这只是表单上的一个方法,您可以像任何其他方法一样调用它。 您只需要创建一个EventArgs对象并传递给它(并将按钮的句柄作为sender
传递给它)。
在第一个按钮事件中调用第二个按钮(图像按钮)事件:
imagebutton_Click((ImageButton)this.divXXX.FindControl("imagbutton"), EventArgs.Empty);
如果您保存了某些内容,您可以使用按钮状态,例如imagebutton的commandArgument。
您可以像调用其他函数一样调用btnTest_Click函数。
最基本的形式如下:
btnTest_Click(this, null);