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

StackOverflow https://stackoverflow.com/questions/830152

Вопрос

Я видел некоторый код, в котором люди передают параметр через свойство CommandParameter веб-контроля. Тогда для чего используются eventargs.

Это было полезно?

Решение

Это может быть полезно, если у вас один и тот же метод 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;
           }
}

Источник: САШ обходя-параметры-в-кнопки-клик-обработчик

Другие советы

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

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

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top