asp.net + css + jQuery - как все это работает вместе? - PullRequest
2 голосов
/ 26 октября 2010

Я хотел бы понять, как я могу использовать jQuery для работы с asp.net и css.Когда я пишу код asp.net и, например, я добавляю на страницу DropDownList, я не вижу его в источнике, когда открываю источник страницы в веб-браузере.Вместо выпадающего списка я вижу тег выбора.Когда происходит «волшебство», чтобы изменить тег asp.net для выбора?Более того, я не вижу своих имен классов CSS, добавленных в теги asp.net.Существуют разные имена классов CSS.Но когда я открываю инструменты разработчика в IE, я вижу имена классов CSS, которые совпадают с моими определениями.И последнее.Какие имена тегов я должен использовать в jQuery, чтобы пройти страницу, которая была разработана в asp.net.Должен ли я использовать теги, которые я вижу в исходном коде страницы в браузере, или я могу спросить jQuery о тегах asp.net?Как насчет CSS классов?Почему я не вижу их в источнике страницы в браузере?Могу ли я использовать мои имена классов CCS в запросах jQuery?Пожалуйста, кто-нибудь может объяснить мне, как эти три технологии работают вместе?

Ответы [ 3 ]

6 голосов
/ 26 октября 2010

Когда происходит «волшебство» для изменения тега asp.net на выбор?

Большая часть «магии», о которой вы задаетесь вопросом, выполняется элементами управления ASP.NET,которые предназначены для генерации разметки, отправляемой в браузер.

При получении запроса приложение выполняет итерацию по каждому элементу управления, вызывая свой метод Render (унаследованный от Control class), который позволяет каждому элементу управления создавать разметку, которую они представляют.

Следуя вашему примеру, элемент управления DropDownList создает тег <select>.Как ListControl, он использует элементы управления ListItem для создания тегов <option> внутри.

Другим будет GridView, который генерирует <table> с использованием GridViewRow элементов управления для <tr> и различные HTML-элементы управления, такие как TableCell для <td> и <th>, для создания остальной разметки.

Шоуд Я использую теги, которые я вижу в исходном кодестраницу в браузере, или я могу спросить jQuery о тегах asp.net?

Нет, jQuery / JavaScript не знает имен элементов управления на стороне сервера, только разметку, которую они генерируют.Таким образом, вместо поиска $('DropDownList'), вы будете искать $('select').

Более того, я не вижу имен своих классов CSS, добавленных в теги asp.net.Существуют разные имена классов CSS.

Под " Имена CSS " вы подразумеваете идентификаторы?Прошу прощения, но атрибуты CssClass не должны изменяться в значении от серверной стороны к клиентской, только в имени - CssClass до class.

идентификаторов, вкл.с другой стороны, имеют префикс для обеспечения их уникальности по всей странице, включая префикс имен MasterPage и ContentPlaceHolder, если они используются.По этой причине я бы воздерживался от попыток использовать идентификаторы для применения CSS к элементам управления на стороне сервера, вместо этого используя классы.

Теперь конец идентификатора должен оставаться в качестве идентификатора, который вы дали в server-сбоку, так что вы все равно сможете найти элемент в jQuery, используя Концы атрибутов с селектором [name$='value']:

# ASP
<asp:DropDownList ID="AnyGivenDropDown" runat="server" />

# HTML (generated)
<select id="ctl00_PageContents_AnyGivenDropDown"></select>

# JavaScript
$('select[id$="_AnyGivenDropDown"]');

В противном случае, я бы использовал классы, чтобы найтиэлементы управления, которые вы ищете:

# ASP
<asp:DropDownList ID="AnyGivenDropDown" CssClass="anygiven" runat="server" />

# HTML (generated)
<select id="ctl00_PageContents_AnyGivenDropDown" class="anygiven"></select>

# JavaScript
$('select.anygiven');

# CSS
.anygiven { }
1 голос
/ 26 октября 2010

«Волшебство» происходит в событии рендеринга жизненного цикла страницы asp.net. Сервер Asp.net контролирует все рендеринга как стандартные элементы HTML. Наиболее важным отличием является то, что вы можете получить доступ к ним и их значениям на стороне сервера. WebControls также имеют свойство CssClass, которое при визуализации становится атрибутом класса HTML-элемента.

Идентификатор может быть немного сложнее при работе с jQuery и CSS. Это связано с тем, что в зависимости от иерархии элементов управления они могут иметь clientID, например ctl100_containerID_myControl, вместо myControl. Чтобы преодолеть это в jQuery, когда вы ссылаетесь на элемент управления, вы можете ссылаться на него по его ClientID следующим образом:

$('#<%=myControlID.ClientID%>')

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

0 голосов
/ 26 октября 2010

ASP.NET: платформа веб-разработки высокого уровня.Когда вы создаете веб-форму в .NET, платформа будет работать вместе с обработчиками IIS и создавать (надеюсь) действительный HTML-код, который будет работать с вашим серверным кодом во время обратных передач.

JQUERY: это позволит вамдля выполнения сценариев на стороне клиента, таких как вычисления, проверки и, в частности, AJAX и т. д. Это в основном просто оболочка для более простой и удобной для чтения версии javascript.

CSS: принимает HTML иделает его красивым.

Все три технологии работают очень хорошо вместе, если вы знаете, что делаете.

Я не уверен, что это то, что вы ищете, но это звучит какВозможно, вы захотите инвестировать в литературу для начинающих.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...