MenuItemDataBound в site.master

Я схожу с ума, пытаясь манипулировать меню в моем site.master. У меня есть следующее меню в моем site.master:

    <asp:Menu ID="NavigationMenu" runat="server" CssClass="menu" EnableViewState="false" IncludeStyleBlock="false" Orientation="Horizontal"> 
        <Items> 
            <asp:MenuItem Text="Welcome" Value="0" NavigateUrl="Default.aspx"></asp:MenuItem> 
            <asp:MenuItem NavigateUrl="Times.aspx" Text="Timesheets" Value="1"></asp:MenuItem> 
            <asp:MenuItem NavigateUrl="View.aspx" Text="View Staff" Value="2"/> 
            <asp:MenuItem Text="Add Staff" Value="2" NavigateUrl="Add.aspx"></asp:MenuItem> 
            <asp:MenuItem Text="Options" Value="3"> 
                <asp:MenuItem Text="Jobs" Value="3" NavigateUrl="Jobx.aspx"></asp:MenuItem> 
                <asp:MenuItem Text="Courses" Value="3" NavigateUrl="Modx.aspx"></asp:MenuItem> 
                <asp:MenuItem Text="Increases" Value="3" NavigateUrl="Incx.aspx"></asp:MenuItem> 
                <asp:MenuItem NavigateUrl="User.aspx" Text="Users" Value="3"></asp:MenuItem> 
            </asp:MenuItem> 
        </Items> 
    </asp:Menu>

И для простоты я добавил и скорректировал следующие этот пример msdn VB в мой файл site.master vb:

Partial Class Site
Inherits System.Web.UI.MasterPage 

Public Sub NavigationMenu_MenuItemDataBound(sender As Object, e As System.Web.UI.WebControls.MenuEventArgs) Handles NavigationMenu.MenuItemDataBound 

    e.Item.Text = "Custom Text" 

End Sub 
End Class

Насколько я понимаю, все элементы в моем меню должны впоследствии иметь текст «Пользовательский текст», но этого просто не происходит. Я упускаю что-то болезненно очевидное?


person Ryan Gillies    schedule 01.02.2013    source источник


Ответы (1)


К этому меню не подключен источник данных, поэтому menuitemdatabound никогда не выполняется.

Если вы хотите манипулировать элементами, вы можете сделать это в файле page_load.

Protected Sub Page_Load(sender As Object, e As EventArgs) Handles Me.Load
    For Each item As MenuItem In NavigationMenu.Items
        item.Text = "CUSTOM"
    Next
End Sub
person bergerb    schedule 01.02.2013