asp.net: как использовать eventargs для передачи параметров на кнопке onclick?

Это потому, что вы неправильно добавляете тег в виде XML для просмотра. Это неправильно:

<!-- Below line is in a wrong place and wrong tag. -->
<layout xmlns:algolia="http://schemas.android.com/apk/res-auto">

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

   ...
</LinearLayout>

должно быть:

<LinearLayout 
   xmlns:android="http://schemas.android.com/apk/res/android"
   xmlns:algolia="http://schemas.android.com/apk/res-auto"
   xmlns:app="http://schemas.android.com/apk/res-auto"
   android:orientation="horizontal"
   android:layout_width="match_parent"
   android:layout_height="match_parent">

   ...

</LinearLayout>
22
задан Maddy.Shik 6 May 2009 в 15:21
поделиться

3 ответа

Это может быть полезно, если у вас один и тот же метод EventHandler для разных кнопок. Например, скажем, ваша разметка выглядит следующим образом:

<asp:Button ID="button1" runat="server" CommandArgument="MyVal1"
   CommandName="ThisBtnClick" OnClick="MyBtnHandler" />
<asp:Button ID="button2" runat="server" CommandArgument="MyVal2"
   CommandName="ThatBtnClick" OnClick="MyBtnHandler" />

Вы можете иметь один и тот же обработчик событий для обеих кнопок и различать их в зависимости от CommandName:

protected void MyBtnHandler(Object sender, EventArgs e)
{
     Button btn = (Button)sender;
          switch (btn.CommandName)
          {
                case "ThisBtnClick":
                    DoWhatever(btn.CommandArgument.ToString());
                    break;
                case "ThatBtnClick":
                    DoSomethingElse(btn.CommandArgument.ToString());
                    break;
           }
}

Источник: aspnet-Pass-параметры-in-Button-Click-Handler

51
ответ дан 29 November 2019 в 03:48
поделиться

Различные элементы управления типа Button в .NET имеют событие OnCommand , а также событие OnClick . При использовании события OnCommand у вас есть дополнительные параметры, которые вы можете применить к кнопке, такие как CommandName и CommandArgument . Затем к ним можно получить доступ в CommandEventArgs .

Это полезно в тех местах, где вы хотите назначить один и тот же метод нескольким кнопкам и использовать CommandName и CommandArgument параметры, указывающие, какую функциональность будет вызывать нажатие этой кнопки.

6
ответ дан 29 November 2019 в 03:48
поделиться

Класс EventArgs является базовым классом. Другие веб-методы используют другие аргументы Event.

Например, LinkButton имеет событие OnClick с параметром EventArgs по умолчанию, но также имеет событие OnCommand, которое принимает параметр CommandEventArgs: EventArgs , который имеет некоторую дополнительную информацию ( а именно, CommandName & CommandArgument).

Базовый класс args для события просто присутствует в качестве заполнителя, поэтому все EventHandlers соответствуют одинаковой подписи.

5
ответ дан 29 November 2019 в 03:48
поделиться
Другие вопросы по тегам:

Похожие вопросы: