2010-03-07 3 views
0

J'ai un répéteur imbriqué et je veux passer la valeur dans son en-tête. Voici mon code jusqu'ici .. Le problème principal est l'id du contrôle dans le modèle d'en-tête vient également du code derrière.valeur de passage de répéteur imbriqué dans le modèle d'en-tête

<asp:Repeater ID="RptrProgCategory" runat="server"> 
    <ItemTemplate> 
     <asp:Repeater ID="RptrPrograms" runat="server"> 
      <HeaderTemplate><input type="hidden" id="<%= questvalue%>"/></HeaderTemplate> 
      <ItemTemplate>      
       <a href="/" id="catid" class="off"><%# DataBinder.Eval(Container.DataItem, "cat") %></a> 
      </ItemTemplate> 
     </asp:Repeater> 
    </ItemTemplate> 
</asp:Repeater> 

Je veux une valeur dans questvalue à partir du code derrière. Une idée de comment y parvenir?

Edit: Je voulais mettre cette valeur dans un DataTable et lier cette valeur dans Répéteur bcoz je veux sortie comme cela peut être <% # DataBinder.Eval (Container.DataItem, « questvalue »)%> au lieu de <% = questvalue%> .. mais dans le cas tht je ne suis pas en mesure de trouver le contrôle

Category1(id of hidden field) 
    subcat1 
    subcat2 
    subcat3 
Category2(id of hidden field) 
    subcat4 
    subcat5..and so on.. 
+0

Quel est le but d'un champ caché si vous ne connaissez pas l'identifiant? Êtes-vous sûr de ne pas vouloir que la * valeur * soit dynamique? –

+0

effectivement il y a du javascript connecté à l'ID ... et je ne peux pas changer le javascript ... donc je mets le champ caché avec l'ID du code derrière pour que cela se produise. –

Répondre

0
Repeater mainRepeater = this.Page.FindControl("RptrProgCategory") as Repeater; 
Repeater nestedRepeater = mainRepeater.FindControl("RptrProgCategory") as Repeater; 

Vous pouvez alors faire un FindControl dans NestedRepeater pour questValue. Ajoutez un runat = 'server' à questvalue pour pouvoir y accéder avec du code. J'écris cela depuis la mémoire, la syntaxe n'est peut-être pas correcte, mais elle devrait vous aider dans la bonne direction.

+0

la chose est Picflight, quand nous faisons généralement FindControl dans NestedRepeater nous spécifions l'id comme HiddenField _hidden = (HiddenField) nestedRepeater.Controls [0] .FindControl ("hiddenfieldid") mais dans mon cas im id à partir du code envoi derrière alors comment le spécifier ici. –

+0

définissez l'ID du contrôle dans le répéteur sur quelque chose comme mycontrolId - puis sur OnItemDataBound - (ou même OnItemCreated) utilisez findcontrol ("mycontrolId") - puis changez l'identifiant du contrôle en paramètre questvalue. – FiveTools

0

définissez l'ID du contrôle dans le répéteur sur quelque chose comme mycontrolId - puis sur OnItemDataBound - (ou même OnItemCreated) utilisez findcontrol ("mycontrolId") - puis modifiez l'ID du contrôle à votre paramètre questvalue.

Questions connexes