Какая кнопка поднялась даже на клик? - PullRequest
0 голосов
/ 06 мая 2011

Я создал 3 LinkButton, все они имеют одно и то же onclick событие, теперь я должен найти, какая кнопка вызвала событие onclick, и это ID

<asp:LinkButton ID="LinkButton1" runat="server" onclick="lnk_Click"/> 
<asp:LinkButton ID="LinkButton2" runat="server" onclick="lnk_Click"/> 
<asp:LinkButton ID="LinkButton3" runat="server" onclick="lnk_Click"/> 

Ответы [ 4 ]

3 голосов
/ 06 мая 2011

Из объекта отправителя, конечно:

LinkButton btn = (LinkButton) отправитель;

btn.ID

protected void MyBtnHandler(Object sender, EventArgs e)
{
     LinkButton btn = (LinkButton)sender;
          switch (btn.CommandName)
          {
                case "ThisBtnClick":
                    DoWhatever(btn.CommandArgument.ToString());
                    break;
                case "ThatBtnClick":
                    DoSomethingElse(btn.CommandArgument.ToString());
                    break;
           }
}
1 голос
/ 06 мая 2011

Ваша функция должна иметь "отправителя" object.

void lnk_Click(object sender, EventArgs e)
{
    LinkButton btn = sender as LinkButton;

    if (btn != null)
    {
        String id = btn.ID;
        //etc
    }
}
1 голос
/ 06 мая 2011

Вы можете сделать

LinkButton lb = sender as LinkButton;

, а затем получить доступ к его свойствам. Тем не менее, если ваша логика достаточно отличается, может оказаться целесообразным разделить несколько обработчиков.

1 голос
/ 06 мая 2011

Приведите отправителя к LinkButton, оттуда вы можете получить идентификатор кнопки, на которую нажали.

LinkButton lb = (LinkButton)sender;
string ID = lb.ID; //the id of the button that was clicked
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...