2011-11-21 6 views
0

asp.net 웹 응용 프로그램에서 어떤 컨트롤이 포스트 백을 발생시키는 지 확인하는 방법이 있습니까?어떤 컨트롤이 포스트 백을 발생시키는 지 확인

나는 여러 개의 단추가 있으며 클릭 한 단추에 따라 Page_Load 메서드에서 다른 작업을 수행하려고합니다.

+0

적절한 클릭 이벤트 처리기에서 이들을 사용하지 않는 이유는 무엇입니까? – V4Vendetta

+0

@HenkHolterman 감사합니다. –

답변

1

포스트 백을 일으킨 컨트롤을 확인하려면 Request.Form [ "__ EVENTTARGET"]을 사용하십시오. 이렇게하면 다시 게시를 일으킨 컨트롤의 고유 ID가 반환됩니다.

EDIT 당신이 ASP 닷넷 후 다시 메커니즘

을 사용하게 false로 버튼의 UseSubmitBehavior 속성을 설정해야합니다이 작업을 수행하려면 사용 UseSubmitBehavior 속성을 지정하는 Button 컨트롤 여부 클라이언트 브라우저의 제출 메커니즘 또는 ASP.NET 포스트 백 메커니즘을 사용합니다. 기본적으로이 속성의 값은 true이며, Button 컨트롤이 브라우저의 제출 메커니즘을 사용하게됩니다. false를 지정하면 ASP.NET 페이지 프레임 워크는 클라이언트 측 스크립트를 페이지에 추가하여 양식을 서버에 게시합니다.

UseSubmitBehavior 속성이 false이면 컨트롤 개발자는 GetPostBackEventReference 메서드를 사용하여 Button에 대한 클라이언트 다시 게시 이벤트를 반환 할 수 있습니다. GetPostBackEventReference 메서드에 의해 반환 된 문자열에는 클라이언트 측 함수 호출의 텍스트가 들어 있으며 클라이언트 쪽 이벤트 처리기에 삽입 할 수 있습니다.

From MSDN

+0

이것은 버튼 클릭에 적용 할 수 없다고 생각합니다. – V4Vendetta

+0

@ V4Vendetta 그렇지 않습니까? –

+1

@ shaun.breach'UseSubmitBehavior'를 false로 설정하지 않으면 잘 안됩니다. Henk의 링크에서 동일하게 체크하십시오. – V4Vendetta

1

당신은 requist의 '__EVENTTARGET'값에서 포스트 백 컨트롤 ID를 얻을 수 있습니다. 매개 변수

다음을보십시오 article.

protected void Button1_Click(object sender, EventArgs e) 
{ 
    ((System.Web.UI.WebControls.Button)sender).ID 
} 

있는 EventArgs 매개 변수를 식별하는 데 사용할 수있는 명령 이름이 포함되어 버튼이 컨트롤 ID를 얻을 수 있도록 버튼에 대한 참조를 포함하는 이벤트의 방법 핸들러에서 잘

0

당신이해야 할 일 :

if (e.CommandName == "AddToCart") 
{ 
    Do something 
} 
+0

'EventArgs e'에'e.CommandName'이 있습니까? – V4Vendetta

관련 문제