关于 ASP.Net 中的弹出窗口

Posted

技术标签:

【中文标题】关于 ASP.Net 中的弹出窗口【英文标题】:About Popup Window in ASP.Net 【发布时间】:2011-10-23 05:09:13 【问题描述】:

我有一个 gridview,其中包含一个 details button 作为最后一列。

我的aspx:

<asp:GridView Width="100%" ID="gv_NotApplied" CssClass="datatable" AllowSorting="True"
    runat="server" TabIndex="2" AutoGenerateColumns="False" AllowPaging="True" GridLines="None">
    <Columns>
        <asp:TemplateField HeaderText="serial">
            <ItemTemplate>
                <asp:Label ID="lblSerial" runat="server"></asp:Label>

            </ItemTemplate>
        </asp:TemplateField>
        <asp:BoundField HeaderText="name" DataField="crs_name" />
        <asp:BoundField HeaderText="lecturer" DataField="name" />
        <asp:TemplateField HeaderText="details">
            <ItemTemplate>
                <asp:ImageButton ID="Ibtn_Details" runat="server" ImageUrl="~/Images/detail.png"
                    CommandArgument='<%#((GridViewRow)Container).RowIndex%>' CommandName="Detail"
                    CausesValidation="false" />
            </ItemTemplate>
        </asp:TemplateField>
    </Columns>
    <RowStyle VerticalAlign="Top" CssClass="row" />
</asp:GridView>

我想做的是:

当用户点击details button时,打开一个弹出窗口(对话窗口)

在此窗口中,我想在其中放置一些 asp.net 服务器控件(如网格视图)。所以我希望这个窗口能够启用/允许我访问后面代码中的那些控件。

【问题讨论】:

查看这个帖子***.com/questions/867109/… 【参考方案1】:

我建议你打开一个模态弹出窗口,如colorbox,这个颜色框可以指向一个包含你想要的所有控件的aspx页面。颜色框会告诉您如何让您的按钮打开模态窗口以及如何将其放入页面。

【讨论】:

非常感谢,你能澄清一下我如何使用colorbox。我将不胜感激。【参考方案2】:

对于这种事情,我喜欢以下构造:

<asp:UpdatePanel id="UpdatePanel1" runat="server">
  <ContentTemplate>
    <asp:Panel id="popup" visible="false" runat="server">
      popup Content
    </asp:Panel>

    <asp:AlwaysVisibleControlExtender ID="AlwaysVisibleControlExtender1" TargetControlID="popup" runat="server" />
    <asp:DragPanelExtender ID="DragPanelExtender1" TargetControlID="popup" runat="server" />
  </ContentTemplate>
 </asp:UpdatePanel>
这样,您可以在需要弹出窗口并完全控制其内容时设置popup.visible = true;。 不过,Updatepanel + Ajax Control Toolkit Extender 将赋予它独立弹出窗口的外观和感觉。

【讨论】:

【参考方案3】:

创建您想要的 aspx 弹出窗口并将 javascript 事件添加到按钮。例如:

<button onclick="window.open('_blank', 'www.google.co.il', 'width=100,height=100');">asdasd</button>

您可以使用后面的代码而不是直接在 aspx 上放置事件,以便为每个按钮提供不同的 url。 为了在项目模板中找到控件,请阅读此处:

http://forums.asp.net/t/998368.aspx/1?Frustated+of+FindControl+FindControl+in+GridView+s+ItemTemplate

【讨论】:

以上是关于关于 ASP.Net 中的弹出窗口的主要内容,如果未能解决你的问题,请参考以下文章

从 MasterView 触发 DetailView 中的弹出窗口

自动关闭kivy中的弹出窗口

显示窗口服务的弹出窗口

iframe中的弹出窗口如何显示在最外层?

Qt中的弹出窗口

切换到同一窗口中的弹出窗口