Не удается получить данные на странице содержимого через JavaScript в asp.net - PullRequest
0 голосов
/ 01 сентября 2011

Я создал небольшое веб-приложение для отображения данных о выбранных сотрудниках.В этом приложении я закодировал JavaScript.Я создал выпадающий список с деталями имени пользователя и флажком напротив каждого пользователя.Эти имена пользователей получают из базы данных.Я хочу, чтобы этот менеджер выпал из списка и выбрал сотрудника, которого он хочет видеть в деталях.Я сделал это с помощью javascript, но проблема в том, что он успешно отображает имена пользователей в выпадающем списке, когда это saparate форма с главной страницы, но когда я объединяю его с главной страницей, значит сделать его страницей содержимого этой главной страницыотобразить имена пользователей в выпадающем списке.Он отображается пустым.Где я делаю неправильно.Любые предложения будут оценены.Заранее спасибо.

Ответы [ 3 ]

1 голос
/ 01 сентября 2011

Как говорит Плеун, мастер-страница изменит HTML-идентификаторы элементов управления, отображаемые в браузере. Есть несколько способов обойти это. Если вы используете asp.net 4, вы можете указать идентификаторы клиента следующим образом:

<asp:Label Text="text" runat="server" ID="SomeID" ClientIDMode="Static" />

Это будет поддерживать идентификатор, отображаемый в браузере.

Если вы пользуетесь предыдущей версией asp.net, то я склонен использовать JQuery, чтобы получить элементы управления, например:

$("[id$='SomeId']")

Значение $= заканчивается на.

Вы также можете использовать разметку сервера, смешанную с вашим кодом JavaScript, например,

var control = document.getElementById("<% =SomeId.ClientId %>");

asp.net выдаст любой идентификатор клиентской стороны, который он назначит элементу управления с идентификатором сервера SomeId

0 голосов
/ 02 сентября 2011

Вам нужно дать клиенту идентификатор элементов управления в функции.Когда вы использовали главную страницу den, изменился идентификатор вашего элемента управления.Например: clientID Checkbox chktest будет chktest без главной страницы. Но с masterpage clientID меняется на что-то вроде 'ctl00_ContentPlaceHolder1_chktest'

Так что JavaScript не будет определять, используете ли вы chktest при использовании главной страницы и ваших функцийне будет работать должным образом. Так что используйте clientId элементов управления.

0 голосов
/ 01 сентября 2011

На главной странице изменяются названия элементов управления:

Посмотрите здесь: http://www.asp.net/master-pages/tutorials/control-id-naming-in-content-pages-cs

(Не ваш вопрос - но функциональность также может быть выполнена из коробки с ASP.NET без самостоятельного кодирования javascript)

...