2015-03-24 3 views
0

код bebind, как на события загрузки страницы:Получить выбранный пункт меню на главной странице на странице контента?

Menu menu = (Menu)Page.Master.FindControl("NavigationMenuAdmin"); 
if (menu != null) 
{ 
    MenuItemtext = menu.SelectedItem.Text; 
    Response.Write("Selected Item is: " + MenuItemtext); 
} 

Но дает ошибку, как:

объекта не задана ссылка на экземпляр объекта.

<asp:Menu ID="NavigationMenuAdmin" runat="server" EnableViewState="false" 
IncludeStyleBlock="false" Orientation="Horizontal" 
CssClass="navbar" 
StaticMenuStyle-CssClass="nav" 
StaticSelectedStyle-CssClass="active" 
DynamicMenuStyle-CssClass="dropdown-menu"> 
<Items> 
     <asp:MenuItem Text="Home"></asp:MenuItem> 
     <asp:MenuItem Text="Candidate"> 
     <asp:MenuItem Text="GetList" NavigateUrl="~/LookupHandler.aspx" /> 
     <asp:MenuItem Text="AddNew" NavigateUrl="~/LookupHandler.aspx" /> 
     <asp:MenuItem Text="Update" NavigateUrl="~/LookupHandler.aspx" /> 
     </asp:MenuItem> 
     <asp:MenuItem Text="Master"> 
     <asp:MenuItem Text="GetList" NavigateUrl="~/LookupHandler.aspx" /> 
     <asp:MenuItem Text="AddNew" NavigateUrl="~/LookupHandler.aspx" /> 
     </asp:MenuItem> 
</Items> 
</asp:Menu> 
+0

возможно дубликат [Что такое NullReferenceException и как это исправить?] (Http://stackoverflow.com/questions/4660142/ what-is-a-nullreferenceexception-and-how-do-i-fix-it) – Anthony

+0

Итак, вы попадаете в 'if' but' menu.SelectedItem' null? –

+0

да, это .....! – kls

ответ

1

Пожалуйста, убедитесь, что переменная с именем «MenuItemtext» объявляется перед строкой.

MenuItemText = menu.SelectedItem.Text; 

Это может быть причиной его показания этой ошибки.

"Ссылка на объект не установлена ​​в экземпляр объекта." - Эта ошибка отображается, когда переменная или объект не объявлены и используются во время выполнения.

Попробуйте этот код:

protected void Page_Load(object sender, EventArgs e) 
{ 
    Menu Menu = (Menu)Page.Master.FindControl("NavigationMenuAdmin"); 
    Menu.MenuItemClick +=Menu_MenuItemClick; 
} 

void Menu_MenuItemClick(object sender, MenuEventArgs Events) 
{ 
    Menu Menu = (Menu)sender; 
    MenuItem selectedItem = Menu.SelectedItem; 
    Response.Write("Selected Item is: " + Menu.SelectedItem.Text + "."); 
} 

Все, что требуется, вы связать событие меню нажмите на PageLoad и обработать Clicked элемент в MenuItemClick EventHandler.

+0

Я уже объявил это, но не знаю, почему это не работает ..! – kls

+0

Если это не было объявлено, вы получите другую ** ошибку компилятора ** (а не исключение во время выполнения). –

+0

можете ли вы разместить еще один код со своей страницы aspx (часть html), а также часть, которая находится над этим кодом в файле C#. – Rishabh

0

Вы должны увидеть, если пункт меню не равно нулю

MenuItem selectedItem = menu.SelectedItem; 
if (selectedItem != null) 
{ 
} 
+0

Я получаю это как null, но как это сделать для получения выбранного значения ..! – kls

+0

Я мог ошибаться, но вы делаете это при загрузке страницы, чтобы узнать, что выбрали. Вам либо нужно выбрать элемент, когда меню меню привязано, либо подключиться к событию щелчка меню и получить выбранный элемент таким образом. – mjroodt

+0

посмотреть здесь http://stackoverflow.com/questions/2770042/set-item-selected -in-asp-net-menu-control – mjroodt

Смежные вопросы