我正在尝试使用Aspx页面中的jQuery对话框打开用户控件(Memo.ascx)作为弹出窗口。
ASPX:
<td>
<asp:ImageButton ID="btnMemo" runat="server" AlternateText="Memo" CausesValidation="false"
OnClientClick="PrepareNOpenDialog()" ClientIDMode ="Static" />
<div id="divMemoInfo" title="Memo"></div>
</td>
JQuery:
$(function () {
PrepareNOpenDialog();
});
function PrepareNOpenDialog() {
$('#divMemoInfo').dialog(); //init the dialog (consider div as a dialog)
$('#divMemoInfo').dialog('close'); //prevent the dialog from showing after initiation
$('#divMemoInfo').load('Memo.ascx');
dialogOptions = {
modal: true
, buttons: {
'Close': function () {
$(this).dialog('close');
}
}
, minWidth: 400
, minHeight: 200
, width: $(window).width() / 3 //'auto'
, height: 'auto'
};
//open dialog when image clicked
$('#btnMemo').click(function () {
$('#divMemoInfo').dialog(dialogOptions);
});
}
我在 onClientclick = OpenMemo()
请建议。
由于
BB
答案 0 :(得分:3)
你有两个问题,你设置OnClientClick =“OpenMemo()”,但我没有看到定义的OpenMemo()javascript函数。您似乎已经有一个“btnMemo”的点击处理程序,因此您的OnClientClick =“OpenMemo”应该被删除。
你的第二个问题是
$('#divMemoInfo').load('Memo.ascx');
此行不起作用。 load方法需要一个URL,可以从中检索内容。您需要将Memo.ascx包装在一个aspx文件中,然后使用aspx文件的URL调用load。如果您只需要Memo.ascx的内容,那么在调用完成时选择它封装的元素。
答案 1 :(得分:1)
没有名为OpenMemo()的javascript函数(作为旁白惯例规定函数名称从小写开始)
尝试创建如下函数:
function OpenMemo(){
$('#divMemoInfo').dialog("open");
}