2011-07-28 10 views
1

メインページのボタンでアクティブになっているC#コードのラベルのテキストを変更しようとしています。 hereherehereを見た私は、このようにそうであるようにテキスト値...ラベルのテキストの変更に失敗しました - なぜでしょうか?

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

を設定すると、私が探しているエラーメッセージを生成しなければならないことを理解しています。しかし、コードをステップ実行すると両方の割り当てが実行されることが示されているにもかかわらず、ラベルテキストは変更されません。

私はこの仕事をするか、それがうまくいかないのかを知ろうと考えていますか?

EDITもう少し詳しく質問しました(これまでのおかげで、チャップス)。

ASP.NETページには、次の部分があります。ボタンはいくつかのJavascriptをアクティブに

<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(); 
    } 

} 

gooがあります明らかにこれよりも多くのコードをプロジェクトで扱っていますが、それをすべて含めることはできませんし、どのビットが重要であるかわかりません。

EDIT 2コードを有効にするボタンは、ComponentArt:CallBackです。この製品のドキュメントを調べると、これが問題である可能性があります。このオブジェクトの外側にある画面の一部がポストバックされていない場合、自然にラベル(外側)は変更されません。

+0

ラベルのテキストは何を表していますか? –

+0

@Tim Bでは、ラベルは「ラベル」と言う形で設定されているので、これを動作させるまではどこにあるかわかります。 –

+0

これはどこで実行されますか?例:Form_Load以前か? –

答えて

1

自分のシナリオを自分のPCに作成して正常に動作しています。 しかし、AJAXを使用している場合は、Updateパネルの実装に完全に依存します。

ラベルが更新パネルになく、ボタンが更新パネルにある場合、ボタンクリックイベントは、そのクリックイベントにハンドラーを追加しない限り、ラベルテキストを更新しません。

完全なシナリオを入力してください。

+0

ご協力いただきありがとうございます。私は質問にさらにコードを追加しました。 –

+0

あなたの指揮を借りて、私は問題がページ内の 'ComponentArt:CallBack'コントロールによって引き起こされていることを発見しました。同じコールバックブロック内で更新したいコントロールを1つ含める必要があります。 –

-2

これ以降も処理がビジーである場合、おそらくGUIをすぐに更新していない可能性があります。更新後にフォーム上でRefresh()を呼び出してみてください。

+1

これはASP.NETであり、WinFormsではありません。 –

+0

私は彼のポストを読むと同じミスを犯しました。彼は、彼のタグが示唆しているように、彼はASP.NETについて話していると思いますが、Windowsフォームではありません。 – RolandK

関連する問題