2009-05-06 2 views
21

사람들이 웹 컨트롤의 commandParameter 속성을 통해 매개 변수를 전달하는 코드를 보았습니다. 그렇다면 eventargs의 용도는 무엇입니까?asp.net : 버튼 onclick을 전달하는 매개 변수에 대해 eventargs를 사용하는 방법은 무엇입니까?

+0

[가능한 가장 평신도 용어로 EventArgs를 사용하는 방법을 설명해 주실 수 있습니까?] (http://stackoverflow.com/questions/1778952/can-someone-please-explain-to-me-in) -the-most-layman-terms-how-to-use-eventargs) – Toadfish

답변

50

다른 버튼에 대해 동일한 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" /> 

당신은 두 개의 버튼에 동일한 이벤트 핸들러를 가지고 있고 명령 이름에 따라 차별화 할 수 있습니다

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-passing-parameters-in-button-click-handler

+0

링크가 더 이상 작동하지 않습니다 – madman2890

+0

일반 함수 호출이 작동하지 않는 이유를 이해하지 못 하겠습니다. 내가 빈 arguements와 함수를 호출 할 수, 내가 함수를 호출하고 그것에 변수를 전달할 수 있지만 "myfunction (\"option1 \ ")"말할 수 없다 " – JFA

5

.NET의 다양한 단추 유형 컨트롤에는 OnCommand 이벤트와 OnClick 이벤트가 있습니다. OnCommand 이벤트를 사용할 때 CommandNameCommandArgument과 같은 추가 매개 변수가 Button에 적용될 수 있습니다. 그런 다음 CommandEventArgs에서 액세스 할 수 있습니다.

동일한 방법을 여러 단추에 할당하고 CommandNameCommandArgument 매개 변수를 사용하여 해당 단추를 클릭하면 어떤 기능이 생성되는지 나타낼 때 유용합니다.

5

EventArgs 클래스는 기본 클래스입니다. 다른 웹 메서드는 다른 Event 인수를 사용합니다.

LinkButton에는 기본 EventArgs 매개 변수가있는 OnClick 이벤트가 있지만 추가 정보가있는 CommandEventArgs : EventArgs 매개 변수 (즉 CommandName & CommandArgument)를 사용하는 OnCommand 이벤트도 있습니다.

이벤트 args 기본 클래스는 모든 EventHandler가 유사한 서명을 준수하도록 자리 표시 자로 존재합니다.

관련 문제