Сведения о вопросе

Getthesound

06:52, 7th August, 2020

Теги

asp.net    

Uncollapsible CollapsiblePanelExtender

Просмотров: 363   Ответов: 4

У меня есть CollapsiblePanelExtender, который не рухнет. У меня есть "collapsed" установлен в true и все ControlID установлены правильно. Я пытаюсь свернуться, и он проходит через анимацию, но затем почти мгновенно расширяется. Это находится в пользовательском элементе управления со следующей структурой.

<asp:UpdatePanel ID="UpdatePanel1" runat="server">
   <ContentTemplate>
      <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" 
            DataSourceID="odsPartners" Width="450px" BorderWidth="0"
            ShowHeader="false" ShowFooter="false" AllowSorting="true" 
           onrowdatabound="GridView1_RowDataBound">
         <Columns>
            <asp:TemplateField HeaderText="Contract Partners" SortExpression="Name"> 
               <ItemTemplate>
                  <asp:Panel id="pnlRow" runat="server">
                     <table>
                          ...Stuff...
                     </table>
                  </asp:Panel>
                  <ajaxToolkit:CollapsiblePanelExtender runat="server" ID="DDE"
                              Collapsed="true" ImageControlID="btnExpander" ExpandedImage="../Images/collapse.jpg" CollapsedImage="../Images/expand.jpg"
                              TargetControlID="DropPanel" CollapseControlID="btnExpander" ExpandControlID="btnExpander" />
                  <asp:Panel ID="DropPanel" runat="server" CssClass="CollapsedPanel">
                     <asp:Table ID="tblContracts" runat="server">
                        <asp:TableRow ID="row" runat="server">
                           <asp:TableCell ID="spacer" runat="server" Width="30">&nbsp;</asp:TableCell>
                           <asp:TableCell ID="cellData" runat="server" Width="400">
                               <uc1:ContractList ID="ContractList1" runat="server" PartnerID='<%# Bind("ID") %>' />
                           </asp:TableCell>
                         </asp:TableRow>
                      </asp:Table>
                  </asp:Panel>
               </ItemTemplate>
            </asp:TemplateField>
          </Columns>
       </asp:GridView>
    </ContentTemplate>
   <Triggers>
       <asp:AsyncPostBackTrigger ControlID="tbFilter" EventName="TextChanged" />
   </Triggers>
</asp:UpdatePanel>



  Сведения об ответе

PROGA

20:18, 10th August, 2020

Мне жаль, что у меня нет времени на неприятности-стреляйте своим кодом, так что это от бедра.

Есть хороший шанс, что это действие на стороне клиента, которое терпит неудачу. Убедитесь, что ваша страница имеет правильный тег doctype, если вы взяли его с вашей страницы или masterPage. Кроме того, попытайтесь также установить ClientState:

DDE.ClientState = истина;

Проблема в том, что у вас есть эта штука, завернутая в ваш TemplateField. Я столкнулся с проблемами, используя AjaxControlToolkit на повторяющихся полях и обычно бок о бок с использованием более легкого варианта на стороне клиента, вплоть до прокатки вашего собственного метода show/hide, который можно использовать повторно, просто передав DOM понятный идентификатор.


  Сведения об ответе

$DOLLAR

20:17, 12th August, 2020

Проверив AutoExpand (который strangley имел никакого видимого эффекта) я проверил тип doc. Ну конечно же. Это и был виновник.

Это правильный выбор:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd" > 

Спасибо, Йен!


  Сведения об ответе

P_S_S

18:47, 6th August, 2020

Также убедитесь, что у вас есть следующий набор свойств:

AutoExpand="False"

Одной из особенностей складной панели является то, что она автоматически расширяется, когда вы наводите на нее курсор мыши, и этот тег будет следить за тем, чтобы этого не произошло.


  Сведения об ответе

PIRLO

04:22, 14th August, 2020

Он работает нормально:

CollapsiblePanelExtender CpeForControls = (CollapsiblePanelExtender)tbl_Form.FindControl("cpe_controls");
CpeForControls.ClientState = "true";
CpeForControls.Collapsed = true;


Ответить на вопрос

Чтобы ответить на вопрос вам нужно войти в систему или зарегистрироваться