2013-08-24 73 views
0

我已經涉足VB和ASP經典的過去,目前正在嘗試在ASP.net中編寫我的第一個站點,而且我非常瞭解我的行爲...但我已經今天花了所有的時間試圖做到這一點,我沒有任何與通常的谷歌搜索。使用動態ID創建LinkBut​​tons

希望在我的代碼中顯而易見,我試圖動態地添加2個具有靜態ID的LinkBut​​ton下的唯一ID的LinkBut​​ton。我想讓這兩個獨特的LinkBut​​tons中的ID具有「companyname」dataitem值,以便在單擊第一個「companylink」時可以取消隱藏它們 - 我還沒有寫下子LoadCompany來取消隱藏兩個LinkBut​​ton但我非常有信心,我已經知道如何做到這一點。

<asp:Content ContentPlaceHolderID="leftsidebarcontent" runat="server"> 

    <li id="leftsidebarhead" class="sidebaritems">/* MENU */</li><br /> 
    <asp:Datalist id="customers" runat="server" RepeatLayout="Flow"> 
    <ItemTemplate> 
    <li class="leftsidebaritem sidebaritems"><asp:LinkButton id="CompanyLink" runat="server" OnCommand="LoadCompany" Text='<%#Container.DataItem("companyname")%>'></asp:LinkButton></li> 
    <li class="leftsidebaritem sidebaritems"><asp:LinkButton id='<%#Container.DataItem("companyname")%> & "Reviews"' runat="server" Text="Reviews"></asp:LinkButton></li> 
    <li class="leftsidebaritem sidebaritems"><asp:LinkButton id='LinkButton1' runat="server" Text="Other"></asp:LinkButton></li> 
    <br /> 
    </ItemTemplate> 
    </asp:Datalist> 

如果有幫助 - 第一LinkBut​​ton的是填充一個導航菜單下的頁面的左側,這些LinkBut​​ton的的我想另外兩個了LinkBut​​ton將被隱藏的每一個下面,直到原來的鏈接按鈕被點擊,在這一點他們取消隱藏 - 所以創建一種嵌套的導航菜單。

回答

0

你可以這樣做的標記:

<asp:Content ID="Content1" ContentPlaceHolderID="leftsidebarcontent" runat="server"> 
    <p id="leftsidebarhead" class="sidebaritems">/* MENU */</p> 
    <br /> 
    <asp:DataList ID="customers" runat="server" RepeatLayout="Flow" OnItemCommand="customers_ItemCommand" > 
     <ItemTemplate> 
      <li class="leftsidebaritem sidebaritems"> 
       <asp:LinkButton ID="CompanyLink" runat="server" CommandName="LoadCompany" 
        Text='<%#DataBinder.Eval(Container.DataItem, "companyname")%>'></asp:LinkButton></li> 
      <ul id="ulSubItems" runat="server" visible="false"> 
       <li class="leftsidebaritem sidebaritems"> 
        <asp:LinkButton ID='LinkButton1' runat="server" Text="Reviews"></asp:LinkButton></li> 
       <li class="leftsidebaritem sidebaritems"> 
        <asp:LinkButton ID='LinkButton2' runat="server" Text="Other"></asp:LinkButton></li> 
      </ul> 
      <br /> 
     </ItemTemplate> 
    </asp:DataList> 
</asp:Content> 

而在代碼隱藏:

Protected Sub customers_ItemCommand(source As Object, e As DataListCommandEventArgs) Handles customers.ItemCommand 
    'Hide all subitems 
    For Each itm As DataListItem In customers.Items 
     If itm.ItemType = ListItemType.Item OrElse itm.ItemType = ListItemType.AlternatingItem Then 
      Dim ulSubItems As HtmlGenericControl = CType(itm.FindControl("ulSubItems"), HtmlGenericControl) 
      ulSubItems.Visible = False 
     End If 
    Next 
    If e.CommandName = "LoadCompany" Then 
     Dim MySubItems As HtmlGenericControl = CType(e.Item.FindControl("ulSubItems"), HtmlGenericControl) 
     If Not MySubItems Is Nothing Then 
      MySubItems.Visible = True 
     End If 
    End If 
End Sub 
+0

感謝您的afzalulh;看起來像個不錯的解決方案我實際上已經找到了解決問題的另一種方法 - 但它不那麼優雅(每個數據集循環都要生成導航表和子項目,使用findcontrol來隱藏/取消隱藏子項目。下週我將實現你的;如果只是多學一點,再次感謝。 – Bruford

相關問題