0

我过去曾涉足过 VB 和 ASP 经典,目前正在尝试在 ASP.net 中编写我的第一个站点,并且我正在不断学习……但是我今天花了所有时间尝试这样做一个,我在通常的谷歌搜索中找不到任何地方。

希望在我的代码中很明显,我正在尝试在具有静态 ID 的 LinkBut​​ton 下方动态添加 2 个具有唯一 ID 的 LinkBut​​ton。我希望 2 个唯一 LinkBut​​tons 中的 ID 在其中包含“companyname”数据项值,以便在单击第一个“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 下方我想要另外两个隐藏的链接按钮,直到单击原始链接按钮,此时它们取消隐藏 - 所以创建一种嵌套导航菜单。

4

1 回答 1

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
于 2013-08-25T19:48:50.397 回答