多くのページで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;
「アイテムを選択できるセレクタ」とはなんですか? 他のjavascriptモーダルダイアログ(confirm()の横にある)を使用できますか?おかげさまで – markiz
多分私は自分自身を明確にしませんでしたが、popupextenderはusercontrolの中にあります。 – markiz