我正在使用ModalPopupExtender:
<ajax:ModalPopupExtender ID="ModalPopupExtender2" runat="server" TargetControlID="dummyButton2" PopupControlID="DayEntryPanel" CancelControlID="Button3" BackgroundCssClass="backCSS"/>
每当我点击打开它的div时,它会打开一两秒,然后随着回发消失。
这是通过一个
的javascript函数打开的 document.getElementById("dummyButton2").click();
我确定这是问题,但我真的想保留这个基本逻辑,我不确定为什么会导致这个问题。我已经尝试将dummyButton2和扩展程序放在自己的更新面板中而不做任何更改。
我可以做一些疯狂的事情,比如保留一个变量来确定我是否应该显示弹出窗口并在page_load上显示该变量是否为真,但这似乎比我更能解决问题。想法?
答案 0 :(得分:1)
参见aspx部分,
<asp:Button ID="Button1" runat="server" Text="Button" OnClientClick="return Clicked()" /> //On this button click the popup appears.
<asp:HiddenField ID="HiddenField1" runat="server" />
<cc1:ModalPopupExtender ID="ModalPopupExtender1" runat="server"
PopupControlID="popupPanel" TargetControlID="HiddenField1" BackgroundCssClass="ModClass"
OkControlID="button2" CancelControlID="button3" BehaviorID="mdlpop">
</cc1:ModalPopupExtender>
<asp:panel id="popuppanel" runat="server" style="display:none; width:200px; background-color:yellow; padding:20px;">
<p>are you sure?</p>
<asp:button id="button2" runat="server" text="ok" OnClientClick="Button1_Click()" />
<asp:button id="button3" runat="server" text="cancel" />
</asp:panel>
按钮2调用的Javascript部分:
<script type="text/javascript" language="javascript">
function Clicked()
{
$find('mdlpop').show(); //mdlpop is the BehaviorID in ModalPopupExtender1
return false;
}
function Button1_Click()
{
alert("ok is pressed");
}
</script>
* 注意: *然后将取消按钮ID设置为ModalPopupExtender1的 CancelControlID ,这将自动删除取消按钮单击时的弹出窗口。同时将ModalPopupExtender1的 PopupControlID 设置为弹出控件的id(此处为popuppanel)。此外, targetcontrolID 不能保持空白,因此只需添加隐藏字段并在那里给出了它的ID(没有其他意义)。你也可以设置 OkControlID (这里设置为button2)并在其客户端函数上定义操作。
HOpe这将有助于ypu解决问题......
答案 1 :(得分:0)
显示弹出窗口并不是一个好主意,请执行以下操作
<ajax:ModalPopupExtender ID="ModalPopupExtender2" runat="server" TargetControlID="dummyButton2" PopupControlID="DayEntryPanel" CancelControlID="Button3" BehaviourId="mpcPopup" BackgroundCssClass="backCSS"/>
看到我提供了一个beahviour Id,现在你可以执行以下操作
$find("mpcPopup").show()//show me some popup's
隐藏弹出窗口
$find("mpcPopup").hide();//zoot bye