Чтобы добавить к тому, что уже было отмечено, вот пара подсказок и ошибок, на которые стоит обратить внимание.
1) Visual Studio 2008 и 2010 поддерживают поддержку intellisense для jQuery с использованием файлов vsdoc. На 2008 год вам нужен SP1 или патч. В любом случае, если вы включите файл vsdoc для скрипта в ту же папку, что и ваш файл include, у вас будет поддержка разработки, например, если вы используете jquery-1.4.2.js
, включите jquery-1.4.2-vsdoc.js
в ту же папку. Файлы vsdoc часто отстают от текущей версии jquery, но вы можете просто переименовать предыдущую версию, которая также будет в основном работать.
2) Asp.net 3.5 или ниже, вам нужно будет использовать ClientID для ссылки на теги DOM id. Лучшие альтернативы доступны в 4.0 (см. Предыдущий ответ). В файле разметки просто используйте <%=MyControl.ClientID %>
. Иногда вам может быть удобно заранее настроить некоторые ссылки:
<script type="text/javascript">
$(document).ready(function() {
var $modalPanel = $('#<%=modalPanel.ClientID %>');
var $myLink = $('#<%=somethingElse.ClientID %>');
...
// now you can write clean looking jquery code
$myLink.click(function(e) {
..
}
}
</script>
3) Смешивание jQuery и UpdatePanels возможно, но следует понимать, что могут быть конфликты. например Использование jQuery для добавления событий к объектам, сгенерированным asp.net (как описано выше с myLink), не всегда работает, потому что asp.net также добавляет клиентский код события. Хотя общепринятая мудрость jQuery - это лучшая практика добавлять события с помощью jQuery, с asp.net часто лучше добавлять их в codebehind, чтобы они правильно играли с тем, что добавляет asp.net. Таким образом, вместо приведенного выше фрагмента для добавления обработчика кликов, в codebehind вы должны сделать:
somethingElse.Attributes.Add("click","myLinkClickFunction()");
и в сценарии:
function myLinkClickFunction()
{
$modalPanel.dialog();
}
4) В asp.net всегда есть только одна форма с идентификатором "aspnetForm", что все, что обращается к серверу, должно жить внутри. Иногда jquery вещи (например, модальные диалоги) должны знать об этом.
5) Когда вы переходите на использование ajax, jquery может нормально общаться с asp.net, но то, как большинство людей делают это с jQuery, не совсем подходит для asp.net. Наверное, много можно сказать о нюансах, но, вообще говоря, получите плагин jquery-json и создайте ajax-запросы следующим образом:
var ajaxData = { parm1: 'value1',
parm: 'value2'
};
// you will probably use other options too (success, error, asycn)
$.ajax({
url: "/my/webservice.asmx/MyMethodName",
type: "POST",
contentType: "application/json; charset=utf-8",
dataType: "json",
data: $.toJSON(ajaxData),
});
Ключ в том, что вам нужно сериализовать объект jQuery в строку. Похоже, что это не относится к php (и в большинстве примеров), поэтому это может сбивать с толку, пока вы не разберетесь.
Веселись!