Форум программистов, компьютерный форум, киберфорум
Наши страницы
C#: Web, ASP.NET
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
Kovy
7 / 7 / 2
Регистрация: 29.04.2009
Сообщений: 411
1

Доступ к элементам внутри LoginView

02.05.2013, 16:19. Просмотров 1162. Ответов 8
Метки нет (Все метки)

Внутри LoginView1 находится элемент Label1 в LoggedInTemplate. Нужно программно задать ему текст. Прямого доступа к лейблу нет. Нашел несколько вариантов, казалось бы логично, но почему-то не выходит.

первый вариант, попроще:
C#
1
2
Label foo = (Label)LoginView_userinfo.FindControl("Label1");
            foo.Text = "dfdf!!!!!!!!";
и второй вариант нашел вот здесь: http://forums.asp.net/t/1160689.aspx/1

Но в обоих случаях пишет, что объект ссылается на Null, следовательно вылазит исключение NullReferencesException.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.05.2013, 16:19
Ответы с готовыми решениями:

Доступ к элементам управления (DGW, ListBox) из потоков
Под элементами управления имею в виду datgaridview, listbox и т.д. В общем подскажите в какую...

Не понятно как получить доступ к остальным элементам xml файла
Здравствуйте . Подскажите пожалуйста как получить значения остальных элементов xml файла? У меня...

Доступ к Label внутри ListView
И снова здравствуйте! Подскажите новичку как мне получить доступ к элементу Label, который внутри...

Доступ из элемента коллекции к другим элементам коллекции
Подскажите как получить данные из другого элемента коллекции? В приведенном примере необходимо...

Доступ к HTML-элементам с помощью JQuery
как с @Html.DropDownList или другие Html. использовать как например <div> в jQuery $("div")

8
HF
268 / 202 / 63
Регистрация: 09.09.2011
Сообщений: 725
Завершенные тесты: 20
02.05.2013, 16:27 2
Если у вас нет точного пути поиска этого контрола то пользуйтесь рекурсивным поиском

FindControl не находит компонент на странице
1
Kovy
7 / 7 / 2
Регистрация: 29.04.2009
Сообщений: 411
03.05.2013, 08:52  [ТС] 3
HF,
C#
1
Label foo = (Page.PreviousPage.FindControlRecoursive(Label.UniqueID) as Label);
Написать то написал, но вот Label здесь как ТИП, и пишет что для UniqueID нужна ссылка на объект, а я же собственно и не могу до этого объекта достучаться. Как быть?
0
rsotun
61 / 61 / 13
Регистрация: 20.04.2010
Сообщений: 456
03.05.2013, 09:45 4
Цитата Сообщение от Kovy Посмотреть сообщение
HF,
C#
1
Label foo = (Page.PreviousPage.FindControlRecoursive(Label.UniqueID) as Label);
Написать то написал, но вот Label здесь как ТИП, и пишет что для UniqueID нужна ссылка на объект, а я же собственно и не могу до этого объекта достучаться. Как быть?
Используйте javascript
0
03.05.2013, 09:45
Kovy
7 / 7 / 2
Регистрация: 29.04.2009
Сообщений: 411
03.05.2013, 09:55  [ТС] 5
rsotun, думаю не гуд JS использовать, ибо должна идти работа с БД, и инфа оттуда выводится в Лейблы.
0
rsotun
61 / 61 / 13
Регистрация: 20.04.2010
Сообщений: 456
03.05.2013, 10:17 6
Цитата Сообщение от Kovy Посмотреть сообщение
rsotun, думаю не гуд JS использовать, ибо должна идти работа с БД, и инфа оттуда выводится в Лейблы.
В этот сучий LoggedInTemplate доступа нет .....
Мне тож стало интересно ...попробовал много способов ..НО доступа нет.
Сделайте авторизацию сами.
0
Kovy
7 / 7 / 2
Регистрация: 29.04.2009
Сообщений: 411
03.05.2013, 10:45  [ТС] 7
rsotun, что значит сделайте авторизацию сами?
Для выхода используется стандартный элемент Login, помещенный в LoginView AnonymousTemplate. Но класс поставщика пользователей MembershipProvider унаследован собственным классом и методы переопределены.
Но причем тут это?

Добавлено через 6 минут
Вообще в других источниках пишут, что FindControl работает, и второй метод работает с собственным классом, но вот у меня не работает почему-то.

Добавлено через 14 минут
Понял я, в чем соль. Я делал это все при загрузке страницы, и там действительно возвращается Null, ибо элементов на странице нет. Только после входа они на странице появятся. При нажатии на кнопку все работает, без кнопки можно подобные изменения проводить в событии LoginView, которое происходит после смены template.
0
HF
268 / 202 / 63
Регистрация: 09.09.2011
Сообщений: 725
Завершенные тесты: 20
03.05.2013, 15:48 8
Цитата Сообщение от Kovy Посмотреть сообщение
HF,
C#
1
Label foo = (Page.PreviousPage.FindControlRecoursive(Label.UniqueID) as Label);
Написать то написал, но вот Label здесь как ТИП, и пишет что для UniqueID нужна ссылка на объект, а я же собственно и не могу до этого объекта достучаться. Как быть?
Во-первых, вы не сказали что вы пытаетесь (зачем-то) читать такое значение с PreviousPage. Передавать значения всё-таки лучше другими способами.
Во-вторых, Label.UniqueID, разумеется, можно использовать только если вы имеете этот объект, а вам нужно искать по известному имени. В данном случае "Label1" (в ковычках) и надеяться на то, что на предыдущей странице оно не называлось как Page1$Content1$....$Label1

Вот вам полезная ссылка по вашей ситуации
http://msdn.microsoft.com/ru-ru/libr...viouspage.aspx
Если текущая страница отображается как результат прямого запроса ( а не передачи или перекрестной рассылки с другой страницы), свойство PreviousPage содержит null.
Скорее всего у вас именно эта причина - null и не возможно найти этот объект.
0
Kovy
7 / 7 / 2
Регистрация: 29.04.2009
Сообщений: 411
03.05.2013, 16:47  [ТС] 9
HF, нет, сначала я пытался без PreviousPage, так стал делать только после того, как ссылку по рекурсивному поиску посмотрел.
Вобще проблему уже решил вот таким кодом:
C#
1
2
3
4
if (....FindControl("...") != null )
{
((Label)LoginView1.FindControl("..")).Text = "";
}
В таком случае все правильно работает - именно тогда, когда открывается нужный мне LogedInTemplate.
0
03.05.2013, 16:47
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.05.2013, 16:47

Как получить доступ к отдельным элементам списка
Добрый день, сделала простой проект, в котором отображается таблица даннных. У меня вопрос: Как...

Доступ к элементам внутри Fancybox
Как можно с помощью jquery воздействовать на элементы DOM внутри Fancybox? Попробовал инструкцию в...

Доступ через get/set к элементам массива внутри класса
Вот такой простой код, а как с помощью get/set обращаться к каждому элементу массива _b в...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru