我有3个不同类型的需要跨我的网站存在AJAX弹出窗口。我希望我可以简单地创建为每一个用户的控制,并把每一个内板和模态弹出扩展,但是这似乎并不奏效。有没有人尝试这之前或者你有一个建议,我怎么能避免重复的代码为每个不同的页面上弹出?谢谢!

有帮助吗?

解决方案

啊我想通了,我的问题与用户控制,我相信。

在ModalPopUpExtender需要出现错误时被另外设置的目标ID属性。由于这是坐在一个用户控件我刚刚创建了一个虚拟链接按钮不会做任何事情,我的财产可见设置为false。

    <asp:LinkButton ID="lnkBlank" runat="server" Visible="false" />
    <asp:Panel ID="plContainer" style="display: none;" runat="server">
            Hello?
    </asp:Panel>
    <cc1:ModalPopupExtender ID="mpe" runat="server" 
            BehaviorID="test"
            TargetControlID="lnkBlank" 
            PopupControlID="plContainer" />

显然不明白,我的Visible属性设置为true的那一刻就开始工作。不知道的理由是什么一个目标ID,因为,我认为,最弹出窗口可以从有关页面的多个链接调用。也许我仍然在这个控制应该如何使用还不完全清楚。

其他提示

一个办法是写在asp.net用户控件的弹出窗口(一的.ascx页),包括在页面上你所需要的弹出窗口。已经在ASCX页的公开方法会显示弹出,当你需要从父页调用它。如果你已经有了父页面上的脚本经理,你不能有第二个在ASCX页,但其他然后,不应该有任何会停止工作这一点。希望这有助于!

编辑:这是我的模态弹出扩展控制的样子...

<cc1:ModalPopupExtender 
    ID="mpeClassroom" 
    BackgroundCssCLass="modalBackground"      
    runat="server"        
    CancelControlID="lbClose"
    OnOkScript="onOk()"
    TargetControlID="Button1" 
    PopupControlID="pnlClassroom">
</cc1:ModalPopupExtender>

在页面背后我的代码,我的方法只是调用mpeClassroom.Show();

具有隐藏链路作为TrgetControlID的问题是;当u盘其知名度为假,服务器不会呈现它。 PopExtender然后找不到在页面上控制。

相反其可见性设置为false,尽量应用样式与显示:无。这应该工作!

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top