问题描述
|
我正在使用ModalPopupExtender:
<ajax:ModalPopupExtender ID=\"ModalPopupExtender2\" runat=\"server\" TargetControlID=\"dummyButton2\" PopupControlID=\"DayEntryPanel\" CancelControlID=\"Button3\" BackgroundCssClass=\"backCSS\"/>
每当我单击打开它的div时,它就会打开一两秒钟,然后与回发一起消失。
这是通过执行以下操作的javascript函数打开的
document.getElementById(\"dummyButton2\").click();
我确定这是问题所在,但我真的很想保留这一基本逻辑,但我不确定为什么会导致此问题。我已经尝试将dummyButton2和扩展器放在其自己的更新面板中,并且没有任何更改。
我可以做一些疯狂的事情,例如保留变量来确定是否应该显示弹出窗口,并在该变量为true的情况下将其显示在page_load上,但这似乎比其他任何事情都更能解决问题。有什么想法吗?
解决方法
请参阅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>
button2调用的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)并在其客户端功能上定义操作。
希望这将有助于ypu解决问题...
, 这不是显示弹出窗口的好主意,请执行以下操作
<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