中继器行扩展-javascript

时间:2013-09-26 08:34:39

标签: asp.net vb.net

在我的转发器控件中,项目模板中的div正在折叠和展开。但是如果第一行展开,如果我单击第二行(div),我希望第一行自动关闭并打开第二行。

提前致谢

    <script language="JavaScript">
    function ToggleDisplay(id) {
        var elem = document.getElementById('d' + id);
        if (elem) {
            if (elem.style.display != 'block') {
                elem.style.display = 'block';
                elem.style.visibility = 'visible';
            }
            else {
                elem.style.display = 'none';
                elem.style.visibility = 'hidden';
            }
        }
    }
</script>

<style>
    .header { font-size: larger; font-weight: bold; cursor: hand; cursor:pointer;
           background-color:#cccccc; font-family: Verdana; }
    .details { display:none; visibility:hidden; background-color:#eeeeee; 
           font-family: Verdana; }
</style>

<asp:Repeater id="rptFAQs" runat="server" DataSourceID="SqlDataSource1">
   <ItemTemplate>
     <div id='h<%# DataBinder.Eval(Container, "ItemIndex") %>' class="header"
          onclick='ToggleDisplay(<%# DataBinder.Eval(Container, "ItemIndex") %>);'>
       <%# DataBinder.Eval(Container.DataItem, "LicenseName")%>
     </div>

     <div id='d<%# DataBinder.Eval(Container, "ItemIndex") %>' class="details">
       <b>Submitted By:</b> <%# DataBinder.Eval(Container.DataItem, "Version")%><br />
       <b>Views:</b> <%# DataBinder.Eval(Container.DataItem, "LicenseID", "{0:d}")%><br />
       <b>FAQ:</b><br />
       <%# DataBinder.Eval(Container.DataItem, "StartDate")%>
     </div>
   </ItemTemplate>

1 个答案:

答案 0 :(得分:0)

如果您可以为所有div提供css类,那么您可以执行以下操作。

这里我假设您将testclass css类提供给所有div。

function ToggleDisplay(id) 
{
    $('.testclass').each(function() 
    {
        $(this).style.display = 'block';
    });
    var elem = document.getElementById('d' + id);
    elem.style.visibility = 'visible';
}