如何从代码后面调用按钮单击事件处理程序

时间:2014-02-12 02:52:18

标签: c# javascript asp.net

我有按钮点击事件,在我的桌子上做更新,当点击按钮时调用此功能,但是我想从后面的代码调用相同的功能,我不确定这是否可能。这是我想从后面的代码调用的事件处理程序:

protected void Update(object sender, GridViewPageEventArgs e)
{
    //do some updates here
}

我甚至试过这个但是没有用,请帮忙

update(null,null);

5 个答案:

答案 0 :(得分:2)

这个怎么样....

创建一个功能

doSomeUpdateHere()
{
    //do some updates here
}

在Button事件中使用它

protected void Update(object sender, GridViewPageEventArgs e)
{
    doSomeUpdateHere();
}

再次使用

doSomeUpdateHere();

答案 1 :(得分:1)

update(null, null);”通话中的“u”错误。只要您不在sender内使用eUpdate并且从同一页面类的方法调用Update,您的方法就可以了。

答案 2 :(得分:0)

您只需调用事件处理程序:

Update(this, new GridViewPageEventArgs());

请注意,您可以调用此方法,但它并不意味着什么,因为这两个参数对事件处理程序都没有任何意义。

但是,您可以尝试使用

来模仿按钮的行为
GridViewPageEventArgs e = new GridViewPageEventArgs();
e.NewPageIndex = 2;
Update(GridView1, e);

答案 3 :(得分:0)

不要通过致电Update(null, null)来制作“假”事件。这有几个原因:

  1. 如果您决定使用活动的参数(object senderGridViewPageEventArgs e),那么传递null值的“假”呼叫很可能会爆炸。
  2. ASP.NET中的“click事件”范例实际上是Observer设计模式的一个实现,它基本上说我希望有一个逻辑在任何依赖对象的状态发生变化时运行。换句话说,您可以在页面上有五个按钮,它们都具有相同的单击事件逻辑。使用Update(null, null)代码会破坏观察者模式的意图。
  3. 将实现逻辑放入click事件处理程序代码几乎总是一个坏主意,因为它使代码不再可重用,因为您必须为某些方案传递“假”值。一般来说,您的点击事件处理程序代码应该调用一个或多个执行各种工作的方法。
  4. 不将实现逻辑分离为单独的方法会使逻辑更难以测试,因为逻辑现在更多地依赖于它(GridView在你的情况下)。
  5. 我建议您执行以下操作:

    protected void DoSomeUpdateHere()
    {
        // Do your table logic here
    
    }
    

    现在,您可以在代码隐藏类中的任何位置调用此DoSomeUpdateHere()方法(例如Page_Load事件,其他方法等)。

      

    注意:由于它是protected,因此标记中的ASP.NET控件仍然可以访问它,但不能在页面本身之外访问它。

答案 4 :(得分:0)

尝试

protected void txtModalPosition_TextChanged(object sender, EventArgs e)
{
        Update(sender,e);

}

protected void Update(object sender, GridViewPageEventArgs e)
{
    //do some updates here
}

或者从页面加载中,您也可以通过传递参数

进行调用
protected void Page_Load(object sender, EventArgs e)
{
  Update(sender,e);           
}

如果需要,您也可以将CastArg类型转换为继承它的其他类。