AjaxControlToolkit DropDownExtender внутри таблицы всегда отображает связанную панель - PullRequest
0 голосов
/ 09 февраля 2010

У меня есть текстовая область, с которой связан dropdownextender ajaxcontroltoolkit, и панель, которая содержит сетку с параметрами, которые пользователь может выбрать.

Вот код для этих предметов:

    <asp:UpdatePanel ID="updPnlView" UpdateMode="Conditional" runat="server">
<ContentTemplate>
    <asp:TextBox ID="txtSiteName" runat="server" TextMode="MultiLine" Rows="4" Columns="33" ReadOnly="true" /></td>
    <ajaxToolkit:DropDownExtender runat="server" ID="popupdropdown" 
    DropDownControlID="pnlGrid" TargetControlID="txtSiteName" />
    <asp:Panel runat="server" ID="pnlGrid" Style="display: none; visibility: hidden" Height="300" ScrollBars="Vertical"> 
         <asp:GridView ID="gvSite" runat="server" AutoGenerateColumns="False" Width="100%" 
            DataKeyNames="ID,FullAddress" DataSourceID="odsSite" OnRowDataBound="gvSite_RowDataBound" 
            ShowFooter="false" ShowHeader="false" OnSelectedIndexChanged="gvSite_SelectedIndexChanged" >
            <Columns>
                <asp:CommandField ButtonType="Link" SelectText="Select" ShowSelectButton="true" ItemStyle-CssClass="HiddenColumn" />
                <asp:TemplateField >
                     <ItemTemplate>
                         <asp:Label ID="FullAddress" runat="server" Text='<%# Eval("FullAddress").ToString().Replace("\n", "<br/>") %>'></asp:Label>
                     </ItemTemplate>
                </asp:TemplateField>
                <asp:CheckBoxField DataField="DisabledFLG" ItemStyle-CssClass="HiddenColumn" />
            </Columns>
        </asp:GridView>
    </asp:Panel>
    <asp:ObjectDataSource ID="odsSite" runat="server" OldValuesParameterFormatString="original_{0}" 
        SelectMethod="GetList"
        TypeName="SOM.DCO.MOGWAI.Bll.SiteManager"
        onselecting="odsSite_Selecting" SortParameterName="SortExpression" 
        onselected="odsSite_Selected" >
        <SelectParameters>
            <asp:Parameter Name="myCriteria" Type="Object" />
            <asp:Parameter Name="myIDs" Type="Object" />
            <asp:Parameter Name="sortExpression" Type="String" />
            <asp:Parameter Name="bypassCache" Type="Boolean" />
        </SelectParameters>
    </asp:ObjectDataSource>
</ContentTemplate>
</asp:UpdatePanel>

Когда я помещаю этот предмет в стол (т. Е. <table><tr><td>THE CODE ABOVE</td></tr></table>), панель всегда отображается полностью открытой, а не скрытой. Он также полностью заполняет доступное пространство в ТД и выталкивает весь другой текст на странице вниз по экрану. Если я возьму связанные элементы управления из таблицы, он будет работать, как и ожидалось. Я продублировал эту проблему как в Firefox, так и в IE8.

Что дает?

1 Ответ

0 голосов
/ 10 февраля 2010

Что ж, с дальнейшим тестированием я смог доказать, что это происходит только в том случае, если элемент управления, на который ссылается dropdownextender, является gridview.

Вместо этого я изменил его на элемент управления списком, и он работает как надо.

Я предполагаю, что это ошибка, но нигде не могу найти ни одной записи о ней.

Я также проверил, было ли такое же поведение, когда вид сетки находился внутри панели, на которую не ссылался dropdownextender, но это не происходило. Так что это определенно связано с dropdownextender.

...