2011-07-17 6 views
2

리피터에있는 버튼을 눌러 내 리피터에서 div에 액세스하려고합니다. div가 표시됨 : 없음; 버튼에는 OnClientClick을 재생하는 jquery 스크립트가 있습니다. 를 heres리피터 내부 Div

되는 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> 

이제 imageId 내가

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

아무것도 조언을 필요로 작동하는 것 같다없는 repeaterBinder에 설정된 속성입니다.

+0

당신이 정말 여기 서버 버튼을해야합니까의 OnClick 표현에 this.getAttribute (이름)을 사용 잊지? 그것은 포스트 백 또는 아니오를 발사 할 수 있습니까? –

답변

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

당신은

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