2011-07-28 4 views
1

기본 페이지의 버튼으로 활성화 된 C# 코드의 레이블 텍스트를 변경하려고합니다. here, herehere을 보았다면서 나는 이런 식으로처럼 텍스트 값 ...레이블의 텍스트를 변경하지 못했습니다 - 그 이유는 무엇입니까?

try 
{ 
    mylabel.Text = ""; 
    do_foo (blah); 
} 
catch (myexception ex) 
{ 
    mylabel.Text = ex.ToString(); 
} 

을 설정하는 것은 내가 찾고 오류 메시지를 생성한다는 것을 이해합니다. 그러나 코드를 단계별로 실행하면 할당이 모두 실행된다는 사실에도 불구하고 레이블 텍스트는 변경되지 않습니다.

누구나 내가이 작업을하거나 작동하지 않는 이유를 알아 내려고 시도 할 수있는 아이디어가 있습니까?

EDIT 자세한 내용은 질문에 답했습니다 (지금까지 도움을 주셔서 감사합니다).

ASP.NET 페이지에는 다음과 같은 부분이 있습니다.

<div class="section3Header"> 
    <span class="heading1">Some Heading</span> 
    <input id="Button2" class="button2" type="button" value="Do Work" onclick="do_work();" /> 
</div> 

버튼 일부 자바 스크립트 활성화 :

function do_work() { 
    CallBackOU.callback("Do Work"); 
    } 

하고는 C# 코드 호출

protected void CallBackOU_Callback(object sender, ComponentArt.Web.UI.CallBackEventArgs e) 
{ 
    if  (e.Parameter == "Do Work") 
    { 
     this.CallBackOUHelper_Do_Work (e.Output); 
    } 

} 

을 그 함수를 호출

-이 :이 버튼은 다음과 같이 정의된다
private void CallBackOUHelper_Do_Work (HtmlTextWriter writer) 
{ 
    try 
    { 
     mylabel.Text = ""; 
     do_foo (blah); 
    } 
    catch (myexception ex) 
    { 
     mylabel.Text = ex.ToString(); 
    } 

} 

끈적 거리는 소리가 있습니다. 분명히 이보다 더 많은 코드를 프로젝트에서 다루지 만, 모든 것을 포함 할 수없고 어떤 비트가 중요한지 확실하지 않습니다.

EDIT 2 코드를 활성화하는 버튼은 ComponentArt:CallBack입니다. 이 제품에 대한 문서를 공부하면 here이 문제가 될 수 있다고 생각합니다. 이 객체 바깥 쪽의 화면 부분이 게시되지 않은 경우 자연스럽게 레이블 (바깥 쪽)은 변경되지 않습니다.

+0

레이블 텍스트의 내용은 무엇입니까? –

+0

@Tim B, 레이블은 "레이블"이라고 말하기 쉬운 형태로 설정되어 있습니다.이 레이블이 작동하기까지는 어디에서 볼 수 있습니다. –

+0

이것은 어디에서 실행됩니까? 예 : Form_Load 또는 그 이전? –

답변

1

내 PC에 시나리오가 작성되어 정상적으로 작동합니다. 그러나 AJAX를 사용하는 경우 업데이트 패널의 구현에 따라 완전히 다릅니다.

레이블이 업데이트 패널에없고 버튼이 업데이트 패널에있는 경우 버튼 이벤트는 클릭 이벤트에 핸들러를 추가 할 때까지 레이블 텍스트를 업데이트하지 않습니다.

전체 시나리오를 제공하십시오.

+0

도움 주셔서 감사합니다. 질문에 더 많은 코드를 추가했습니다. –

+0

리드를 따라 가면서 문제가 페이지 내부의 'ComponentArt : CallBack' 컨트롤에 의해 발생한 것으로 나타났습니다. 하나는 동일한 콜백 블록 내에서 업데이트하고자하는 컨트롤을 포함해야합니다. –

-2

이후에도 계속 처리 중이면 GUI가 즉시 업데이트되지 않습니다. 업데이트 후 양식에 Refresh()으로 전화 해보십시오.

+1

WinForms가 아닌 ASP.NET입니다. –

+0

나는 그의 게시물을 읽을 때 같은 실수를했다. 그의 태그가 제안한대로 ASP.NET에 대해 이야기하고 있다고 생각합니다. Windows Forms가 아닙니다. – RolandK

관련 문제