MenuItemDataBound в site.master
Я схожу с ума, пытаясь манипулировать меню на моем сайте. На моем сайте есть следующее меню: 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>
И для простоты я добавил и настроил следующий пример MSB 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
Насколько я понимаю, все элементы в моем меню должны впоследствии иметь текст "Пользовательский текст", но этого просто не происходит. Я что-то упускаю до боли?
1 ответ
Решение
К этому меню не подключен источник данных, поэтому привязка к пункту меню никогда не выполняется.
Если вы хотите манипулировать элементами, вы можете сделать это в 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