Сворачиваемый расширитель панели внутри ListView

#c# #asp.net #ajax #listview

#c# #asp.net #ajax #listview

Вопрос:

Я пытаюсь создать складную панель внутри элемента listview. В шаблоне элемента у меня есть панель и расширитель сворачиваемой панели. Для того, чтобы установить атрибуты TargetControlID, CollapseControlID и т.д., Мне нужны идентификаторы клиентов, которые генерируются после привязки к данным для каждого из элементов listview. Кто-нибудь знает, как я могу установить эти атрибуты на стороне клиента?

Я пробовал различные вещи в соответствии со следующими:

 <ItemTemplate>
  <asp:Panel ID="ManagingPanel" runat="server">
  </asp:Panel>
  <asp:CollapsiblePanelExtender runat="server" TargetControlID='<%="ManagingPanel.ClientID" %>' />
</ItemTemplate>
  

РЕШЕНИЕ — Оказывается, вам не нужно использовать ClientID. Расширитель распознает, что его цель находится внутри того же элемента listview.

 <asp:CollapsiblePanelExtender runat="server" TargetControlID="ManagingPanel" />
  

Ответ №1:

Я создал пользовательский элемент управления, который включает в себя CollapsiblePanelExtender и все остальные, которые я хотел бы показать, сложные HTML-структуры, а затем я включил этот элемент управления в повторитель.

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

что-то вроде

 <asp:Repeater ID="myRepeater" runat="server">
    <ItemTemplate>
        <uc1:MyCustonControl ID="lPro" runat="server" data="<%#PassData%>"  />
    </ItemTemplate>
</asp:Repeater>         
  

Ответ №2:

Оказывается, вам не нужно использовать ClientID. Расширитель распознает, что его цель находится внутри того же элемента listview.

 <asp:CollapsiblePanelExtender runat="server" TargetControlID="ManagingPanel" />