0

我正在使用 ModalPopupExtender:

<ajax:ModalPopupExtender ID="ModalPopupExtender2" runat="server" TargetControlID="dummyButton2" PopupControlID="DayEntryPanel" CancelControlID="Button3" BackgroundCssClass="backCSS"/>

每当我单击打开它的 div 时,它会打开一两秒钟,然后与回发一起消失。

这是由一个javascript函数打开的

            document.getElementById("dummyButton2").click();

我确定这就是问题所在,但我真的很想保留这个基本逻辑,我不确定为什么会导致问题。我试过将 dummyButton2 和扩展器放在它自己的更新面板中,没有任何变化。

我可以做一些疯狂的事情,比如保留一个变量来确定我是否应该显示弹出窗口并在 page_load 上显示该变量是否为真,但这似乎比任何事情都更能解决问题。想法?

4

2 回答 2

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>

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)并在其客户端函数上定义操作。

希望这将帮助您解决问题...

于 2011-06-15T07:45:04.370 回答
0

显示您的弹出窗口并不是一个好主意,请执行以下操作

<ajax:ModalPopupExtender ID="ModalPopupExtender2" runat="server" TargetControlID="dummyButton2" PopupControlID="DayEntryPanel" CancelControlID="Button3" BehaviourId="mpcPopup" BackgroundCssClass="backCSS"/>

看到我提供了一个行为 ID,现在您可以执行以下操作

$find("mpcPopup").show()//show me some popup's

隐藏弹出窗口

$find("mpcPopup").hide();//zoot bye
于 2011-06-15T07:06:59.427 回答