2009-07-03 20 views
1

多くのページでajax ModalPopupExtenderを使用して確認ダイアログを表示します。ユーザーコントロール内にajax ModalPopupExtenderを配置する

私はすべてのページで同じコードを使用コントロールに配置して再利用したいと思います。 しかし、私はそれがJavaScript(私はサーバー側の操作をしたくない)からこのユーザーコントロールにアクセスすることが可能かどうかはわかりません。

これは私がユーザーコントロール内に置きたいというポップアップ表示のために責任があるコード、次のとおりです。

<script language="javascript" type="text/javascript"> 
    var _source; 
    var _popup; 
    var _btn; 
    var _div; 

    function showConfirm(source, btnID, theDiv) { 

     this._source = source; 
     this._btn = btnID; 
     this._div = theDiv; 

     document.getElementById(btnID).click(); 
     document.getElementById(theDiv).style.visibility = 'visible'; 
    } 

     function okClick() { 

      document.getElementById(_div).style.visibility = 'hidden'; 
      __doPostBack(this._source.name, ''); 
     } 

     function cancelClick() { 
      document.getElementById(_div).style.visibility = 'hidden'; 
      this._source = null; 
     } 
    </script> 


<cc1:ModalPopupExtender ID="modal" runat="server" 
     TargetControlID="theButton" PopupControlID="div" 
     OkControlID="btnOk" OnOkScript="okClick();" CancelControlID="btnNo" 
     OnCancelScript="cancelClick();" BackgroundCssClass="modalBackground" /> 

<div id="div" runat="server" align="center" class="confirm" style="display: none"> 
    <img align="absmiddle" src="../images/warning.jpg" />Are you sure you want to delete this item? 
    </br> 
    <asp:Button ID="btnOk" runat="server" Text="Yes" Width="50px" /> 
    <asp:Button ID="btnNo" runat="server" Text="No" Width="50px" /> 
</div> 

そして「ホスティング」ページで、私は引き金となるボタンにJSを割り当てますポップアップ: これは私が今持っている(とユーザーコントロールに採用されなければならない)コードです:

string s = string.Format("showConfirm(this,'{0}','{1}');return false;", theButton.ClientID, div.ClientID);    
btn.OnClientClick = s; 

答えて

1

モーダルポップアップコントロールは、ちょうど別のDOM要素であるように、JavaScriptからモーダルポップアップエクステンダを呼び出すことが可能です。あなたが知る必要があるのは、アイテムを選択できるセレクタだけです。

javascriptからモーダルポップアップエクステンダーを表示するには、マスターページ、ユーザーコントロール、またはモーダルポップアップエクステンダーであるdom要素を表示するページにスクリプトを追加するだけです。

また、ajaxモーダルポップアップエクステンダーと同じように(それほど重要ではないが)他の多くのスタイルのモーダルダイアログを持つJavaScriptフレームワークを使用できます。これはおそらく、ASP.NETのサーバー側コード機能を使用したくないと考えると、達成しようとしているものと関連があります。

+0

「アイテムを選択できるセレクタ」とはなんですか? 他のjavascriptモーダルダイアログ(confirm()の横にある)を使用できますか?おかげさまで – markiz

+0

多分私は自分自身を明確にしませんでしたが、popupextenderはusercontrolの中にあります。 – markiz

関連する問題