2012-01-20 4 views
0

웹 사용자 컨트롤에 텍스트 상자가 있습니다. 그리고 난 텍스트 변경 이벤트가 자동으로 다시 게시 될 때 발생합니다.

protected void Page_PreInit(object sender, EventArgs e) 
{ 
    Find = (TextBox)(Menu1.FindControl("txtTarget")); 
    Find.TextChanged += new EventHandler(Find_TextChanged); 
} 
void Find_TextChanged(object sender, EventArgs e) 
{ 
} 

지금 나는 동일한 웹 사용자 정의 컨트롤에서의 LinkButton이 ... 따를 때 해당 텍스트

변경 이벤트 핸들러를 컨텐츠 페이지에 액세스하고 추가하고있다. 이 링크 버튼을 클릭하면 해당 텍스트의 텍스트 변경 이벤트가 자동으로 실행됩니다.

링크 버튼을 클릭 할 때 발생하는 이벤트를 어떻게 멈출 수 있습니까?

+0

Text 속성 값을 변경하면 TextChanged 이벤트가 발생합니다. 처리에 관심이 없으면 이벤트 처리기를 제거하십시오. – adatapost

+0

하지만 다른 경우에는 필요합니다. 링크 버튼을 클릭 할 때이 이벤트가 필요하지 않습니다. –

+0

버튼의 클릭은 TextChanged를 발생시키지 않고 그 값을 제외한 핸들러를 호출합니다. – adatapost

답변

3

텍스트 상자가 다시 게시 될 때마다 값을 확인합니다. 이전 서버 값과 다른 경우 TextChanged 이벤트를 발생시킵니다. 나는 그 주위에 어떤 방법이 있다고 생각하지 않는다. 그러나, 나는 당신이 할 수 있다고 생각 무엇 링크 버튼을 클릭 할 경우, 핸들 무시하는 것을 조건으로하는 경우 넣어 :

void Find_TextChanged(object sender, EventArgs e) 
{ 
    //if link to ignore, exit 
    if (Request.Form.Get("__EVENTTARGET") == lnkLinkToIgnore.UniqueID) 
     return; 


} 

그것은 된 ClientID 될 수있다,하지만 나는 그것이가 UniqueID 게시, 따라서 확신 링크가 TextChanged를 처리하지 않는 포스트 백을 일으켰는지 확인할 수 있습니다.

+0

Ok 고맙습니다. –

+0

Brain 정말 고맙습니다. –

관련 문제