J'ai un contrôle répéteur imbriqué qui affiche une liste de données, dans mon cas c'est une liste de FAQ. voici la partie de conception:Modifier la valeur du contrôle de la base de données dans les répéteurs en C#
<asp:Repeater ID="lists" runat="server">
<ItemTemplate>
<h2 class="sf_listTitle"><asp:Literal ID="listTitle" runat="server"></asp:Literal></h2>
<p class="sf_controlListItems">
<a id="expandAll" runat="server">
<asp:Literal ID="Literal1" runat="server" Text="<%$Resources:ExpandAll %>"></asp:Literal>
</a>
<a id="collapseAll" runat="server" style="display:none;">
<asp:Literal ID="Literal2" runat="server" Text="<%$Resources:CollapseAll %>"></asp:Literal>
</a>
</p>
<ul class="sf_expandableList" id="expandableList" runat="server">
<asp:Repeater ID="listItems" runat="server">
<HeaderTemplate>
</HeaderTemplate>
<ItemTemplate>
<li>
<h1 id="headlineContainer" runat="server" class="sf_listItemTitle">
<a id="headline" runat="server" title="<%$Resources:ClickToExpand %>"></a>
</h1>
<div id="contentContainer" runat="server" class="sf_listItemBody" style="display:none;">
<asp:Literal ID="content" runat="server"></asp:Literal>
</div>
</li>
</ItemTemplate>
<FooterTemplate>
</FooterTemplate>
</asp:Repeater>
</ul>
</ItemTemplate>
</asp:Repeater>
Le répéteur que je suis intéressé est le deuxième répéteur, listItems
. Dans mon code-behind, je ne peux pas appeler directement listItems
et voir les contrôles à l'intérieur de celui-ci. J'ai essayé de prendre le contrôle à l'intérieur de list.DataBinding
(peut-être que je dois utiliser un autre événement?) Méthode:
void lists_ItemDataBound(object sender, RepeaterItemEventArgs e)
{
var oRepeater = (Repeater) lists.FindControl("listItems");
}
mais ce qui se présente comme null
. Quelqu'un peut-il me donner quelques conseils/conseils sur ce que je dois faire pour avoir accès au répéteur listItems
et à ses commandes pour enfants?
Merci!
Merci, fonctionne bien: D – Anders
Pas de problèmes. La hiérarchie des contrôles ASP .NET est belle une fois que vous le connaissez :) –