Форум программистов, компьютерный форум, киберфорум
Наши страницы
C#: Web, ASP.NET
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.86/21: Рейтинг темы: голосов - 21, средняя оценка - 4.86
zema
4 / 4 / 0
Регистрация: 17.09.2008
Сообщений: 88
1

Проблема с методом FindControl в FormView

21.10.2008, 14:21. Просмотров 3956. Ответов 14
Метки нет (Все метки)

Всем привет!!
Столкнулся с такой проблемой:
Есть FormView
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<asp:FormView ID="UserFormView" runat="server" DataKeyNames="UserID" DataSourceID="FormViewDataSource" DefaultMode="Edit">
<EditItemTemplate>
  
  <table width="99%">
            <tr style="width: 100%">
                <td style="width: 30%">
                    <asp:Label runat="server" ID="UsernameLabel">Username</asp:Label>
                </td>
                <td>
                    <asp:TextBox ID="UsernameTextBox" runat="server" Width="100%"  Text='<%# Bind("Username") %>' />
                </td>
            </tr>
           </table>
 
<div id="divPassword" runat="server">
   <asp:TextBox ID="textBoxPassword" runat="server" Width="100%"  Text=""/>
   <br/>
   <asp:TextBox ID="textBoxConfirmPassword" runat="server" Width="100%"  Text=""/>
</div>
</EditItemTemplate>
</asp:FormView>
Мне нужно обратится к UsernameLabel я пишу (TextBox)UserFormView.FindControl("UsernameLabel ") все работает отлично, но когда мне нужно обратится к divPassword и я пишу UserFormView.FindControl("divPassword ") возращает null, не могу понять почему , может кто знает как мне обратится к контролу divPassword в данном примере
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.10.2008, 14:21
Ответы с готовыми решениями:

master page и findcontrol()
Здравствуйте. В проекте две страницы одна masterpage другая наследуется от неё (Web Content...

Не работает findcontrol в Page_Load
Перехожу с одной страницы на другую c помощью LinkButton На новой странице с помощью кода: ...

Работа с FormView
Использую на WebForm'е элемент FormView, в котором в таблице (НТМL элемент) выводятся выпадающие...

FormView и Gmap
Здравствуйте! Проблема такова, есть FormView с данными и контролом Gmap, так вот пытаюсь показать...

FindControl не находит компонент на странице
Пример из книги Visual C# 2008 базовый курс, но я на 10ке щас сижу, пример заключается в том, что...

14
mik-a-el
Администратор
75618 / 44681 / 243
Регистрация: 10.04.2006
Сообщений: 12,938
21.10.2008, 14:27 2
Здесь FindControl и не нужен, можно обращаться по ID.
0
zema
4 / 4 / 0
Регистрация: 17.09.2008
Сообщений: 88
21.10.2008, 16:10  [ТС] 3
Цитата Сообщение от mik-a-el Посмотреть сообщение
Здесь FindControl и не нужен, можно обращаться по ID.
к сажелению это не так еслибы это было бы так, я бы не спрашивал, я пишу в 8 студии и в ней присутствует уже файл дизайнира, если я обращаюсь как Вы написали проект даже некомпилируется
0
mik-a-el
Администратор
75618 / 44681 / 243
Регистрация: 10.04.2006
Сообщений: 12,938
21.10.2008, 16:13 4
Как я понимаю, у вас web application, а не web site? Т.к. файлы дизайнера создаются в веб-приложениях что в 2005 студии, что в 2008.
0
21.10.2008, 16:13
zema
4 / 4 / 0
Регистрация: 17.09.2008
Сообщений: 88
21.10.2008, 16:16  [ТС] 5
угу и у меня весь с# код компилируется в зборку
0
mik-a-el
Администратор
75618 / 44681 / 243
Регистрация: 10.04.2006
Сообщений: 12,938
21.10.2008, 16:19 6
Ну так там тоже можно обращаться к контролам по их айди
У вас эти контролы в дизайнере прописаны?
0
zema
4 / 4 / 0
Регистрация: 17.09.2008
Сообщений: 88
21.10.2008, 16:31  [ТС] 7
Цитата Сообщение от mik-a-el Посмотреть сообщение
Ну так там тоже можно обращаться к контролам по их айди
У вас эти контролы в дизайнере прописаны?
У меня в дизайнере один контрол описан этот <asp:FormView ID="UserFormView" runat="server" DataKeyNames="UserID" DataSourceID="FormViewDataSource" DefaultMode="Edit">

а то что он содержит у себя в нутри темплейтов, конечно же неописано
0
mik-a-el
Администратор
75618 / 44681 / 243
Регистрация: 10.04.2006
Сообщений: 12,938
21.10.2008, 16:45 8
А блин, они ж в шаблоне
Тогда я подозреваю, что div не ищется потому, что он не является наследником Control, т.е. это вообще не контрол.
div можно заменить например PlaceHolder.
0
zema
4 / 4 / 0
Регистрация: 17.09.2008
Сообщений: 88
21.10.2008, 17:47  [ТС] 9
Ага щас затестю!!

Добавлено через 54 минуты 13 секунд
Все затестил!!! возмущению моему нет придела(из-за интуитивно непонятных вещей)...
В том коде который привел в начале заменил этот <div id="divPassword" runat="server"> на то что вы мне посоветовали PlaceHolder, ну думаю asp контрол ща будет работать, а не фига, вообще перестало находить даже то что раньше находило например это UserFormView.FindControl("UsernameLabel ").

Добавлено через 1 минуту 41 секунду
FormView - рендерится в таблицу, может что-то в этом

Добавлено через 3 минуты 28 секунд
типо тупо в шаблонах использовать те элементы управления которые нельзя использовать в таблицах
0
mik-a-el
Администратор
75618 / 44681 / 243
Регистрация: 10.04.2006
Сообщений: 12,938
21.10.2008, 17:54 10
Цитата Сообщение от zema Посмотреть сообщение
В том коде который привел в начале заменил этот <div id="divPassword" runat="server"> на то что вы мне посоветовали PlaceHolder
Приведите получившийся код.
Цитата Сообщение от zema Посмотреть сообщение
FormView - рендерится в таблицу, может что-то в этом
Цитата Сообщение от zema Посмотреть сообщение
типо тупо в шаблонах использовать те элементы управления которые нельзя использовать в таблицах
Это здесь ни при чем.
0
zema
4 / 4 / 0
Регистрация: 17.09.2008
Сообщений: 88
21.10.2008, 18:01  [ТС] 11
Вот код который получился
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<asp:FormView ID="UserFormView" runat="server" DataKeyNames="UserID" DataSourceID="FormViewDataSource" DefaultMode="Edit">
<EditItemTemplate>
  
  <table width="99%">
            <tr style="width: 100%">
                <td style="width: 30%">
                    <asp:Label runat="server" ID="UsernameLabel">Username</asp:Label>
                </td>
                <td>
                    <asp:TextBox ID="UsernameTextBox" runat="server" Width="100%"  Text='<%# Bind("Username") %>' />
                </td>
            </tr>
           </table>
 
<asp:PlaceHolder id="placeHolderPassword" runat="server">
   <asp:TextBox ID="textBoxPassword" runat="server" Width="100%"  Text=""/>
   <br/>
   <asp:TextBox ID="textBoxConfirmPassword" runat="server" Width="100%"  Text=""/>
</asp:PlaceHolder>
 
</EditItemTemplate>
</asp:FormView>
возвращает null и это UserFormView.FindControl("UsernameLabel")

и это UserFormView.FindControl("placeHolderPassword")
0
mik-a-el
Администратор
75618 / 44681 / 243
Регистрация: 10.04.2006
Сообщений: 12,938
21.10.2008, 18:04 12
Где вы производите их поиск?
0
zema
4 / 4 / 0
Регистрация: 17.09.2008
Сообщений: 88
21.10.2008, 18:14  [ТС] 13
в обработчике события DataBound самого FormView
0
mik-a-el
Администратор
75618 / 44681 / 243
Регистрация: 10.04.2006
Сообщений: 12,938
21.10.2008, 18:20 14
Только что воспроизвел ваш пример, в DataBound контролы находятся.
0
zema
4 / 4 / 0
Регистрация: 17.09.2008
Сообщений: 88
21.10.2008, 19:28  [ТС] 15
Благодарю за помощь!!
У меня в тестовом проекте тоже заработало, но чо-то не работает в основном. Буду разбираться.
0
21.10.2008, 19:28
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.10.2008, 19:28

Не обновляет запись в FormView
Здравствуйте! Проблема такая, есть FormView, перехожу в режим редактирования меняю запись в любом...

Как извлечь полученные данные из FormView?
Добрый день(вечер,ночь,утро) такой вопрос.. сделала запрос, в FormView получила некоторые...

Альтернатива FormView, в которой можно использовать событие OnItemCommand
Доброго времени суток. Имеется кастомное всплывающее окно, в котором находится FormView. На самой...


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

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

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