#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" />