2015-09-16 3 views
0

анимация работает btw, всякий раз, когда я нажимаю меню, подменю автоматически выпадающее меню. проблема теперь возникает каждый раз, когда я нажимаю элемент в подменю, который он сжимает, когда он фильтрует таблицу данных.Как отключить динамическую боковую панель внутри списка asp listview?

Heres мой код:

<div id="contentWrapper"> 

        <ul id="leftNavigation"> 

         <li><a href="#"><i class="leftNavIcon"></i>Hardware</a> 
          <asp:ListView ID="lvHardware" runat="server"> 
           <LayoutTemplate> 
            <ul> 
             <asp:PlaceHolder ID="itemPlaceholder" runat="server" /> 
            </ul> 
           </LayoutTemplate> 
           <ItemTemplate> 
            <ul> 
             <li> 
              <asp:LinkButton ID="lbSidebar" runat="server" CssClass="submenuLink" OnClick="lbSidebar_Click" CommandArgument='<%#Eval("TableKey")+";"+Eval("TableValue")%>'><i class="glyphicon glyphicon-menu-right leftNavIcon"></i><%#Eval("TableValue")%></asp:LinkButton> 
             </li> 
            </ul> 
           </ItemTemplate> 
          </asp:ListView> 
         </li> 
        </ul> 
     </div> 

в repeaterAssets еще один ретранслятор для моей таблицы. им с помощью динамических LinkButtons, чтобы фильтровать содержимое моего стола

отделенного кода:

protected void lbSidebar_Click(object sender, EventArgs e) 
    { 

     Business.Assets asset = new Business.Assets(); 
     LinkButton btn = (LinkButton)(sender); 
     string[] arg = new string[2]; 
     arg = btn.CommandArgument.ToString().Split(';'); 
     int yourValue = System.Convert.ToInt32(arg[0]); 
     string breacrumbValue= arg[1]; 
     phBreadcrumb.Controls.Add(new Literal() { Text = "<li>"+breacrumbValue+"</li>"}); 
     repeaterAssets.DataSource = asset.FilterGridview(yourValue); 
     repeaterAssets.DataBind(); 
    } 

и вот что DOM исследователь показывает мне:

<ul> 
<li> 

<a class="submenuLink" id="MainContent_lvHardware_lbSidebar_0" href="javascript:__doPostBack('ctl00$MainContent$lvHardware$ctrl0$lbSidebar','')"><i class="glyphicon glyphicon-menu-right leftNavIcon"></i>Desktop CPU</a> 

</li> 
</ul> 
+0

Где? Определяется 'lbSidebar_Click'? Как оно выглядит? Проблема, скорее всего, будет в этом коде JS/jQuery. –

ответ

0

после игры вокруг кода, я наконец, исправил это. код не самый красивый, но он сделал трюк для меня.

   <ul id="leftNavigation"> 

        <li id="liHardware" runat="server"><a href="#"><i class="leftNavIcon"></i>Hardware</a> 
         <asp:ListView ID="lvHardware" runat="server"> 
          <LayoutTemplate> 
           <ul> 
            <asp:PlaceHolder ID="itemPlaceholder" runat="server" /> 
           </ul> 
          </LayoutTemplate> 
          <ItemTemplate> 
           <ul> 
            <li> 
             <asp:LinkButton ID="lbSidebar" runat="server" CssClass="submenuLink" OnClick="lbSidebar_Click" CommandArgument='<%#Eval("TableKey")+";"+Eval("TableValue")%>'><i class="glyphicon glyphicon-menu-right leftNavIcon"></i><%#Eval("TableValue")%></asp:LinkButton> 
            </li> 
           </ul> 
          </ItemTemplate> 
         </asp:ListView> 
        </li> 
       </ul> 
    </div> 

код позади:

protected void lbSidebar_Click(object sender, EventArgs e) 
{ 

    Business.Assets asset = new Business.Assets(); 
    LinkButton btn = (LinkButton)(sender); 
    string[] arg = new string[2]; 
    arg = btn.CommandArgument.ToString().Split(';'); 
    int yourValue = System.Convert.ToInt32(arg[0]); 
    string breacrumbValue= arg[1]; 
    phBreadcrumb.Controls.Add(new Literal() { Text = "<li>"+breacrumbValue+"</li>"}); 
    repeaterAssets.DataSource = asset.FilterGridview(yourValue); 
    repeaterAssets.DataBind(); 
    liHardware.Attributes.Add("class","active"); 
} 

я просто добавил класс, который будет отображать: блокировать литиево оболочку при LinkButton нажатии.

.active{display:block;} 
Смежные вопросы