Меню jQuery и Карта сайта ASP.NET

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, указывающий на недопустимую ячейку памяти. Нулевой указатель буквально не указывает на в любом месте , который отличается от указаний на местоположение, которое оказывается недопустимым.)

20
задан Peter Mortensen 14 March 2010 в 03:58
поделиться

5 ответов

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

Вещи мне было нужно:

, Мой законченный 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.

29
ответ дан 30 November 2019 в 00:14
поделиться

Похоже, что необходимо генерировать УЛ. для Суперрыбы. Необходимо смочь сделать это с ASP.NET от карты сайта. Я думаю, что управление картой сайта сделает что-то вроде этого. В противном случае это должно быть довольно тривиально, чтобы назвать карту сайта непосредственно от C# и генерировать DOM программно. Вы могли создать пользовательский элемент управления, чтобы сделать это или сделать это на основной странице.

Выезд эта статья MSDN о том, как программно перечислить узлы в Вашей карте сайта.

2
ответ дан 30 November 2019 в 00:14
поделиться

Да, это полностью возможно.

я использовал его с управлением ASP:Menu и jQuery 1.2.6 с плагином Суперрыбы. Отметьте, Вам будет нужно ASP.NET 2,0 CSS Дружественные Адаптеры Управления .

ASP.NET генерирует управление ASP:Menu как сервировку. CSS Дружественный Адаптер Управления заставит ASP.NET генерировать управление ASP:Menu как расположение УЛ./LI в отделении

, Это позволит простую интеграцию jQuery и плагина Суперрыбы, потому что плагин Суперрыбы полагается на расположение УЛ./LI.

3
ответ дан 30 November 2019 в 00:14
поделиться

Управление SiteMapDataSource должно смочь связать с любым иерархическим связанным элементом управления данных. Я не знаком с суперрыбой, но я знаю, что существует много средств управления jQueryish там, чтобы сделать это.

0
ответ дан 30 November 2019 в 00:14
поделиться

Не забудьте добавить классы CSS для элементов NonLink. Элементы Superfish css для них не подходят. И если вы похожи на меня, и у вас есть корневое меню, которое не является ссылками, тогда оно будет отображаться ужасно. Просто добавьте элементы AspNet-Menu-NonLink в файл superfish.css, и он должен отображаться нормально.

1
ответ дан 30 November 2019 в 00:14
поделиться
Другие вопросы по тегам:

Похожие вопросы: