NullPointerException
s - исключения, возникающие при попытке использовать ссылку, которая указывает на отсутствие местоположения в памяти (null), как если бы она ссылалась на объект. Вызов метода по нулевой ссылке или попытка получить доступ к полю нулевой ссылки вызовет функцию NullPointerException
. Они наиболее распространены, но другие способы перечислены на странице NullPointerException
javadoc.
Вероятно, самый быстрый пример кода, который я мог бы придумать для иллюстрации NullPointerException
, be:
public class Example {
public static void main(String[] args) {
Object obj = null;
obj.hashCode();
}
}
В первой строке внутри main
я явно устанавливаю ссылку Object
obj
равной null
. Это означает, что у меня есть ссылка, но она не указывает на какой-либо объект. После этого я пытаюсь обработать ссылку так, как если бы она указывала на объект, вызывая метод на нем. Это приводит к NullPointerException
, потому что нет кода для выполнения в местоположении, на которое указывает ссылка.
(Это техничность, но я думаю, что она упоминает: ссылка, которая указывает на null, равна 't то же, что и указатель C, указывающий на недопустимую ячейку памяти. Нулевой указатель буквально не указывает на в любом месте , который отличается от указаний на местоположение, которое оказывается недопустимым.)
Я нашел этот вопрос при поиске того же ответа... все говорят , это возможно, но никто не дает фактическое решение! У меня, кажется, есть он работающий теперь так думал, что я отправлю свои результаты...
Вещи мне было нужно:
Суперрыба , который также включает версию [1 113] jQuery
CSS Дружественные Адаптеры Управления DLL загрузки и .browsers файл (в / мусорное ведро и/App_Browsers папки соответственно)
ASP.NET SiteMap (.sitemap XML-файл и siteMap
запись поставщика в web.config)
, Мой законченный Masterpage.master
имеет следующий head
тег:
<head runat="server">
<script type="text/javascript" src="/script/jquery-1.3.2.min.js"></script>
<script type="text/javascript" src="/script/superfish.js"></script>
<link href="~/css/superfish.css" type="text/css" rel="stylesheet" media="screen" runat="server" />
<script type="text/javascript">
$(document).ready(function() {
$('ul.AspNet-Menu').superfish();
});
</script>
</head>
, Который является в основном всем необходимым материалом, чтобы меню Superfish jQuery работало. В странице (куда меню идет) похож на это (на основе [1 116] эти инструкции ):
<asp:SiteMapDataSource ID="SiteMapDataSource" runat="server"
ShowStartingNode="false" />
<asp:Menu ID="Menu1" runat="server"
DataSourceID="SiteMapDataSource"
Orientation="Horizontal" CssClass="sf-menu">
</asp:Menu>
На основе документации, это кажется, что она ДОЛЖНА работать - но она не делает. Причина состоит в том, что эти CssClass="sf-menu"
перезаписывается, когда Меню представляется и эти <ul>
, тег добирается class="AspNet-Menu"
. Я думал, что строка $('ul.AspNet-Menu').superfish();
поможет, но она не сделала.
ЕЩЕ ОДНА ВЕЩЬ
, Хотя это - взлом (и нравятся, кто-то указывает на меня на правильное решение), я смог получить его работающий путем открытия superfish.css
файл и поиск и замены sf-меню с [1 134] AspNet-меню ... и вуаля! меню появилось. Я думал, что будет некоторый параметр конфигурации в эти asp:Menu
управление, где я мог установить <ul>
класс, но не нашел подсказок через Google.
Похоже, что необходимо генерировать УЛ. для Суперрыбы. Необходимо смочь сделать это с ASP.NET от карты сайта. Я думаю, что управление картой сайта сделает что-то вроде этого. В противном случае это должно быть довольно тривиально, чтобы назвать карту сайта непосредственно от C# и генерировать DOM программно. Вы могли создать пользовательский элемент управления, чтобы сделать это или сделать это на основной странице.
Выезд эта статья MSDN о том, как программно перечислить узлы в Вашей карте сайта.
Да, это полностью возможно.
я использовал его с управлением ASP:Menu и jQuery 1.2.6 с плагином Суперрыбы. Отметьте, Вам будет нужно ASP.NET 2,0 CSS Дружественные Адаптеры Управления .
ASP.NET генерирует управление ASP:Menu как сервировку. CSS Дружественный Адаптер Управления заставит ASP.NET генерировать управление ASP:Menu как расположение УЛ./LI в отделении
, Это позволит простую интеграцию jQuery и плагина Суперрыбы, потому что плагин Суперрыбы полагается на расположение УЛ./LI.
Управление SiteMapDataSource должно смочь связать с любым иерархическим связанным элементом управления данных. Я не знаком с суперрыбой, но я знаю, что существует много средств управления jQueryish там, чтобы сделать это.
Не забудьте добавить классы CSS для элементов NonLink. Элементы Superfish css для них не подходят. И если вы похожи на меня, и у вас есть корневое меню, которое не является ссылками, тогда оно будет отображаться ужасно. Просто добавьте элементы AspNet-Menu-NonLink в файл superfish.css, и он должен отображаться нормально.