带有下拉文本子项的ASP.NET菜单图像

时间:2011-02-14 18:31:32

标签: asp.net menu user-controls

我有一个带有图片按钮的菜单用户控件,如下所示:

<asp:TableCell ID="tcDownload" runat="server" CssClass="MyMenuTableCellDownload" VerticalAlign="Top" >
    <asp:ImageButton ID="ibtnDownload" runat="server" ImageUrl="~/Images/MyMenu/tb_download_1.gif"
        CssClass="MyMenuIbtn" ToolTip="Download Results" />
</asp:TableCell>

在代码隐藏中,我处理onclick,以便导航到另一个页面:

ibtnDownload.Attributes.Add("onclick", "document.location.href = '" + strNavUrl + "';return false");

在用户控件的其他地方,我有像这样的常规文本菜单:

<asp:TableCell ID="tcMyMenuCust" runat="server">
    <asp:Menu ID="menuMyCust" runat="server" StaticDisplayLevels="1" MaximumDynamicDisplayLevels="1" Orientation="Horizontal"
            CssClass="MyMenuCustomer" StaticMenuItemStyle-ItemSpacing="0px" DynamicMenuItemStyle-CssClass="MyMenuDynamicItem"
             StaticMenuItemStyle-CssClass="MyMenuStaticItem" DynamicHoverStyle-CssClass="MyMenuDynamicItemHover" DynamicVerticalOffset="0"
            StaticHoverStyle-CssClass="MyMenuStaticItemHoverCust" StaticEnableDefaultPopOutImage="false"
             DynamicPopOutImageUrl="~/Images/MyMenu/menu_arrow_grey.gif" DynamicMenuItemStyle-VerticalPadding="2" 
             DisappearAfter="0" OnMenuItemClick="menuMy_MenuItemClick">
        <Items>
            <asp:MenuItem Text="Customers" ImageUrl="~/Images/MyMenu/MyMenuGradientTransparent.png" Selectable="false">
                <asp:MenuItem Text="Domestic&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;" 
                    Value="Customer_Domestic",
                    NavigateUrl="~/MyMain.aspx?_page=DomCusts&_title=DomesticCustomers">
                </asp:MenuItem>
                <asp:MenuItem Text="International&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;" 
                    Value="Customer_International"
                    NavigateUrl="~/MyMain.aspx?_page=IndCusts&_title=InternationalCustomers">
                </asp:MenuItem>
            </asp:MenuItem>
        </Items>
    </asp:Menu>
</asp:TableCell>

我想要做的是通过更改图像按钮来扩展菜单选项,使其像常规菜单一样,同时保持其外观(图像资源)。也就是说,单击图像应该会导致子菜单下拉以显示子项。

我知道可以使用StaticEnableDefaultPopOutImage等属性来指示菜单项包含子项。我也明白菜单项可以有背景图像,但是如果我只是想在主菜单项上使用图像而不是文本,那么在点击时会删除子项目?

1 个答案:

答案 0 :(得分:0)

事实证明这是相当简单的。在上面的示例中,我提供了顶级项目的ID(“Customers”)并删除了Text属性,因此只显示在ImageURL中设置的图像。