Member 12911010 Ответов: 1

Вызов кнопкой, без нажатия на кнопку C#


Приветствия,

У меня есть кнопка в моем файле aspx под названием Button2. Файл. cs имеет функцию, которая вызывается при нажатии кнопки.

protected void Button2_Click(object sender, EventArgs e)
   {
       Response.Redirect("Login.aspx");
   }


Как я могу вызвать эту функцию, фактически не нажимая на кнопку?
Может ли кто-нибудь помочь мне разобраться в этом?
Заранее спасибо.

Что я уже пробовал:

private void comRFID_DataReceived(object sender, System.IO.Ports.SerialDataReceivedEventArgs e)
{
    SomeSub();

    if ((strbuffer[11].ToString() == strCard1[11]))
    {
        UserID = "870104-07-5448";
        Send_Beep();
        System.Diagnostics.Debug.WriteLine(("UserId: " + UserID));
        comRFID.Close();
        Button2.PerformClick();


    }

    else
    {
     Response.Write("<script>alert('Card Undefined, Please Register Your Card.');</script>");
        Send_cmd();
    }

}

Я попробовал выполнить метод щелчка, но, похоже, он не работает.

CHill60

"это не работает" не помогает. Если вы хотите получить разумные ответы на свой вопрос, тогда объясните, что происходит. В этом случае вы не передали необходимые параметры

Graeme_Grant

Почему бы не иметь общую функцию, которую могут вызывать оба?

[no name]

Переместите перенаправление с события нажатия кнопки на свою собственную функцию, а затем вызовите эту функцию из обоих мест.

1 Ответов

Рейтинг:
11

CHill60

Вместо того чтобы вызывать событие Click кнопки, поместите код из этой кнопки в частный метод и вызовите этот метод из события Click. Затем вы можете вызвать тот же метод из другого кода.

В качестве альтернативы, если вы собираетесь вызвать Button2. Click, то вы должны указать соответствующие параметры. Поскольку вы не собираетесь использовать ни sender, ни e, вы можете просто передать их как нули.

Вариант 1 из них является лучшим подходом.

[EDIT - фактический код]

protected void Button2_Click(object sender, EventArgs e)
{
    CallRedirect();
}
private void CallRedirect()
{
    Response.Redirect("Login.aspx");
}
private void comRFID_DataReceived(object sender, System.IO.Ports.SerialDataReceivedEventArgs e)
    {
        SomeSub();

        if ((strbuffer[11].ToString() == strCard1[11]))
        {
            UserID = "870104-07-5448";
            Send_Beep();
            System.Diagnostics.Debug.WriteLine(("UserId: " + UserID));
            comRFID.Close();
            CallRedirect();
        }
        else
        {
         Response.Write("<script>alert('Card Undefined, Please Register Your Card.');</script>");
            Send_cmd();
        }

    }