2011-06-24 8 views
0

私はユーザーコントロール内にいくつかの更新パネルを持っています。更新パネルの1つは、jQuery UIダイアログで開くdivで囲まれています。UserControl Registerのクライアントパネルの更新パネル

ポストバックで、次のコードが画面に出力されないようなクライアントサイドスクリプトbuを登録してダイアログを閉じたいとします。

void EventEditControl_EventUpdated(object sender, EventArgs e) 
    { 
     BindGrid(); 
     CloseDialog("dialog-form"); 
     upGrid.Update(); 
    } 

    private void CloseDialog(string dialogId) 
    { 
     string script = string.Format(@"closeDialog('{0}')", dialogId); 
     ScriptManager.RegisterClientScriptBlock(this, this.GetType(), UniqueID, script, true); 
    } 

答えて

3

私はthisはdiv要素が含まれているユーザーコントロールがあると仮定していますし、divが更新パネルが含まれています。もしそうなら、それが問題です。 MSDNあたり: は、このメソッドを使用して登録されている

クライアントスクリプトブロックは、制御 が が更新されている のUpdatePanelコントロール内にあるコントロールを表す場合にのみ、ページに送信 です。

私の以前の前提が正しい場合、thisは更新パネル内になく、更新パネルが含まれています。代わりに、thisを更新パネル内のコントロールへの参照に置き換えます。必要に応じて、非表示のフィールドまたはリテラルを追加してジョブを実行することもできます。

関連する問題