Calling a button's OnClick method elsewhere - Good Practice? I have two buttons on an ASP.NET page that have separate OnClick methods in the code behind. In one of the methods, if a certain condition is met, the entire process of the other method should be executed.

Here is a simplified example of my code, which works as I intend in my actual implementation:

// OnClick="ThisButton_OnClick" for ThisButton
protected void ThisButton_OnClick(object sender, EventArgs e)
{
    // do stuff
    if(condition)
        ThatButton_OnClick(null, null);
    else
        // do stuff
}

// OnClick="ThatButton_OnClick" for ThatButton
protected void ThatButton_OnClick(object sender, EventArgs e)
{
    // do stuff
}


My question is this: is it good practice to do something like this, where you call a method specifically designed for OnClick without clicking that button, or should I be more explicit (perhaps have a separate helper function that is called by ThatButton_OnClick and in the if)?
I'd suggest something like the following which is simple enough for even a novice like me to understand. Is there a real need to simulate button click? You're not testing buttons, are you? 

// OnClick="ThisButton_OnClick" for ThisButton
protected void ThisButton_OnClick(object sender, EventArgs e)
{
    // do stuff
    if(condition)
        DoStuffThatButtonWouldDo(arg);
    else
        // do stuff
}

// OnClick="ThatButton_OnClick" for ThatButton
protected void ThatButton_OnClick(object sender, EventArgs e)
{
    DoStuffThatButtonWouldDo(arg);
}

private static DoStuffThatButtonWouldDo(fancy arguments) 
{ 
    //TODO: do all the stuff that the that button would do 
}