设置动态高度的ajax模态弹出窗口

时间:2012-09-18 12:36:46

标签: c# asp.net ajaxcontroltoolkit

我正在创建一个asp.net c#web应用程序。其中我有一个ajax模式PopUp,其中包含一个GridView。 ModalPopUp的高度根据GridView的高度自动设置(这取决于GridView内部的数据)。 现在我想要的是,当Popup的高度变得大于其父页面时,那时我想重置 PopUp的高度(少于父页面)并在其上设置滚动条。 所有这些我想动态客户端。 为此,我使用以下代码

    function ShowPopUp_AllPrices() {          
    $find('popupAllPrices').show();       
    return false;   
    }



<asp:LinkButton ID="lnkProduct" runat="server"></asp:LinkButton>
<ajaxToolkit:ModalPopupExtender ID="ModalPopupProduct" runat="server" BehaviorID="popupProduct"
    TargetControlID="lnkProduct" PopupControlID="pnlAddProduct"    BackgroundCssClass="modalBackground" />
<asp:Panel ID="pnlAddProduct" runat="server" Style="display: none; width: 80%; font-size: 8pt;">

 <div>
        <asp:LinkButton ID="lnkAllPrices" runat="server"></asp:LinkButton>
        <ajaxToolkit:ModalPopupExtender ID="ModalPopupAllPrices" runat="server" BehaviorID="popupAllPrices"
            TargetControlID="lnkAllPrices" PopupControlID="pnlAllPrices" BackgroundCssClass="modalBackground"  />
        <asp:Panel ID="pnlAllPrices" runat="server" Style="display: none; width: 30%; font-size: 8pt; ">
      <div class="art-blockcontent">
                        <div class="art-BlockContent-body">
                            <%--<div style="overflow: auto; width: 100%; height: 200px;">--%>
                            <table width="100%">
                                <tr>
                                    <td align="center">
                                        <div style="overflow: auto; width: 100%; "><%--height: 200px;--%>
                                            <asp:GridView ID="grvPriceTypes2" runat="server" AutoGenerateColumns="False"      AllowSorting="true"
                                                EmptyDataText="No Data Found." Width="90%" CssClass="cssGrid" BackColor="WhiteSmoke"
                                                PagerStyle-HorizontalAlign="Center" OnRowCommand="grvPriceTypes2_OnRowCommand"
                                                Enabled="false">
                                                <Columns>
                                                    <asp:BoundField DataField="StartDate" HeaderText="Start Date"      DataFormatString="{0:MM/dd/yyyy}"
                                                        ItemStyle-HorizontalAlign="Center" ItemStyle-Width="25%" />
                                                    <asp:BoundField DataField="EndDate" HeaderText="End Date"     DataFormatString="{0:MM/dd/yyyy}"
                                                        ItemStyle-HorizontalAlign="Center" ItemStyle-Width="20%" />
                                                    <asp:BoundField DataField="PriceType" HeaderText="Type"      ItemStyle-HorizontalAlign="Center"
                                                        ItemStyle-Width="15%" />
                                                    <asp:BoundField DataField="Price" HeaderText="Price"      ItemStyle-HorizontalAlign="right"
                                                        ItemStyle-Width="20%" />
                                                </Columns>
                                            </asp:GridView>
                                        </div>
                                    </td>
                                </tr>
                            </table>                                                            
                        </div>
                    </div>
  </asp:Panel>
    </div>
 </asp:Panel>

请告诉我应该在ShowPopUp_AllPrices()函数中编写哪些代码来设置该模态弹出窗口的高度和滚动条。

2 个答案:

答案 0 :(得分:2)

我的问题解决了。我刚刚设置了一个&#34; max-height&#34; div标签的style属性,它位于我的Grid之上。喜欢:

<div style="overflow: auto;max-height:400px; width: 100%;" >

通过提供&#34; max-height&#34;在style属性下,当pop的高度增加到400px以上时,它会在弹出窗口内自动给出滚动条。

答案 1 :(得分:0)

divWindow.dialog({
    autoOpen: true,                                   
    title: "Menu Items",
    draggable: true,
    resizable: false,
    modal: true,
    width:($(window).width() * .9),
    height: ($(window).height() * .9),
    dialogClass: 'dialogFixed',
    open: function(event, ui) 
});