ASP.NET : 버튼 on 클릭을 전달하는 매개 변수에 EventArgs를 사용하는 방법은 무엇입니까?
-
06-07-2019 - |
문제
사람들이 웹 제어의 명령 파라미터 속성을 통해 매개 변수를 전달하는 코드를 보았습니다.
해결책
다른 버튼에 대해 동일한 이벤트 핸들러 메소드가있는 경우 유용 할 수 있습니다. 예를 들어, 마크 업이 다음과 같이 보입니다.
<asp:Button ID="button1" runat="server" CommandArgument="MyVal1"
CommandName="ThisBtnClick" OnClick="MyBtnHandler" />
<asp:Button ID="button2" runat="server" CommandArgument="MyVal2"
CommandName="ThatBtnClick" OnClick="MyBtnHandler" />
버튼 모두에 대해 동일한 이벤트 핸들러를 가질 수 있으며 명령 이름을 기반으로 차별화 할 수 있습니다.
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의 다양한 버튼 유형 컨트롤에는 an이 있습니다 OnCommand
이벤트뿐만 아니라 이벤트 OnClick
이벤트. 사용할 때 OnCommand
다음과 같은 버튼에 적용 할 수있는 추가 매개 변수가있는 이벤트 CommandName
그리고 CommandArgument
. 그런 다음 이들은 액세스 할 수 있습니다 CommandEventArgs
.
동일한 방법을 여러 버튼에 할당하고 사용하려는 장소에서 유용합니다. CommandName
그리고 CommandArgument
버튼을 클릭하는 기능을 나타내는 매개 변수.
그만큼 EventArgs
클래스는 기본 클래스입니다. 다른 웹 방법은 다른 이벤트 args를 사용합니다.
예를 들어 LinkButton에는 기본 EventArgs 매개 변수가 포함 된 OnClick 이벤트가 있지만 OnCommand 이벤트도 있습니다. CommandEventArgs : EventArgs
추가 정보가있는 매개 변수 (즉, CommandName & CommandArgument).
이벤트 Args 기본 클래스는 모든 이벤트 핸들러가 유사한 서명을 준수하도록 장소 보유자로서 존재합니다.