2011-07-17 4 views
2

En essayant d'accéder à un div de mon répéteur en appuyant sur un bouton qui se trouve dans le répéteur le div est dans l'affichage: aucun; le bouton a un script jquery qui entre en jeu OnClientClick.Div dans un répéteur

Heres un échantillon du HTML:

<asp:Repeater runat="server" ID="rptrPics" OnItemDataBound="rptrPics_ItemDataBound" OnItemCommand="rptrPics_ItemCommand"> 
<ItemTemplate> 
<asp:Button runat="server" ID="showDiv" OnClientClick="$('div[imageId=' + imageId + ']').slideToggle(); return false; /> 
<div runat="server" id="hiddenDiv" style="display: none;"> 
SOME CODE 
</div> 
</ItemTemplate> 
</asp:Repeater> 

maintenant imageId est un attribut que je mets dans le repeaterBinder

hiddenDiv.Attributes.Add("imageId", imgData.ProductId.ToString()); 
showDiv.Attributes.Add("imageId", imgData.ProductId.ToString()); 

rien ne semble fonctionner besoin de conseils.

+0

-vous bouton vraiment besoin de serveur ici? Est-ce que cela peut déclencher une publication ou non? –

Répondre

2
function slideToggle(button) { 
    $(button).next("div.hiddenDiv").slideToggle(); 
    return false; 
} 

<asp:Repeater runat="server" ID="rptrPics"> 
<ItemTemplate> 
    <asp:Button runat="server" ID="showDiv" OnClientClick="return slideToggle(this);" Text="Show" /> 
    <div runat="server" class="hiddenDiv" style="display:none;" > 
     SOME CODE 
    </div> 
</ItemTemplate> 

3

Vous oubliez utiliser this.getAttribute (nom) dans l'expression Surclic

OnClientClick="$('div[imageId=' + this.getAttribute(imageId) + ']').slideToggle(); return false; /> 
Questions connexes