请问Ajax里的ModalPopupExtender控件有几种显示方法,我只知道一种在后台的事件里写ModalPopupExtender1.show();方法。但是我想用它的TargetControlID="btnHide"的tbnHide.click()方法弹出模式窗体。但总是不能成功。这是我的代码,请各位高手给参谋参谋。急!!!!!!!!!!!1     <script type="text/javascript">
         function showDiv(controlname) {             var btnHid = document.getElementById(controlname);
             btnHid.click();
             return false;
         }
</script>
<asp:Panel ID="Panel1" runat="server" Style="width: 460px; height: 229px; display: none; background-image:url(../images/waiting.bmp)">
        <asp:UpdatePanel ID="UpdatePanel4" runat="server" UpdateMode="Conditional">
            <ContentTemplate>
                <div style="width: 460px; height: 229px; margin-left: 180px; margin-top: 75px">
                    <img src="../images/wait.gif" alt ="wait" height ="100px" width ="100px" />
                </div>
           
            </ContentTemplate>
        </asp:UpdatePanel>
      
    </asp:Panel>
    <ajax:ModalPopupExtender ID="mpeMain" runat="server"   TargetControlID="btnHide" PopupControlID="Panel1"
         BackgroundCssClass="mpecss" RepositionMode="None">
    </ajax:ModalPopupExtender>    <asp:Button ID="btnHide"  runat="server" Text="隐藏" style=" display: none" />   <asp:Button ID="btnGetPrice" runat="server" Text="获取" 
                                            OnClientClick="showDiv(<%=btnHide.ClientID%>)" onclick="btnGetPrice_Click" 
                                             />
我的主要目的是想通过调用tbnGetPrice按钮的OnClientClick方法弹出模式对话框,然后在btnGetPrice_Click事件里写从数据库读取数据。为这个时间可能会10秒左右,我想让前台不能点击其他按钮或进行其他错误以免死机。但是每次运行的时候直接进入btnGetPrice_Click方法里,不会弹出模式窗体。 还有我这个页面是ajax窗体,会不会有什么影响。在线等

解决方案 »

  1.   

    需要配合后台代码吧!
    ModalPopupExtender绑定的控件一定得存在当前页面
      

  2.   

    我的控件存在当前页面了啊。问题是因为 btnGetPrice 按钮 应该放在updatePanel里,因为它有后台事件。而且showDiv(<%=btnHide.ClientID%>)应该用动态ID。
      

  3.   

    是不是说,控制某个控件(A)的控件(B),必须要和这个控件在同一个updatepanel里?
    A、B在同一个updatepanel里?