Я подозреваю, что здесь может быть причиной искажения идентификатора.
Измените свой сценарий на этот и повторите попытку.
$(function () {
$('#<%=pnlTabs.ClientID %>').tabs();
});
Поскольку спецификация HTML требует, чтобы идентификаторы элементов были уникальными в DOM, платформа ASP.NET пытается избежать возможности появления повторяющихся идентификаторов, переписывая идентификаторы, которые вы назначаете серверным элементам управления на странице. Если подумать, то в какой-то степени это имеет смысл, так как использование таких элементов управления, как, например, gridview, где у вас есть серверный элемент управления с идентификатором, который вы хотели бы повторить для каждого элемента в источнике данных, вы бы не хотели идентификатор также повторяется, так как это приведет к недопустимому HTML.
Любой элемент управления с интерфейсом INamingContainer
создает новое пространство имен идентификаторов, которое приведет к искажению идентификатора элемента на стороне клиента. * Используя приведенную выше разметку, мы можем получить идентификатор, который будет сгенерирован в ответе, отправленном клиенту, выведенном на страницу в вызове функции jQuery.
*ASP.NET 4 можно настроить так, чтобы идентификаторы не изменялись, на свой страх и риск!
ИЗМЕНИТЬ:
Я просмотрел ваш демонстрационный код, и все работает по назначению - обработчики событий вкладки правильно привязаны к элементам списка, которые при нажатии применяют правильные классы CSS к элементам div, чтобы показать соответствующий и скрыть другие соответственно.
Кажется, что вам не хватает большого куска CSS, необходимого для стилизации вкладок, и именно классы CSS управляют некоторым поведением вкладок. Если вы вставите ссылку на CSS-тему jQuery UI, размещенную в Google API, все будет работать правильно. Я добавил следующее после ссылки на вашу таблицу стилей CSS
<link href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/themes/base/jquery-ui.css" rel="stylesheet" type="text/css"/>
и все, казалось, работало, как ожидалось.
Кстати, вам может быть интересно попробовать ASP.NET MVC — по моему личному мнению, после года использования, если бы у меня был выбор, я бы не стал возвращаться к веб-формам. Если вы знакомы с HTML, CSS и JavaScript, вы можете найти его более интуитивно понятным, чем использование веб-форм :)
person
Russ Cam
schedule
06.11.2010