Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / А как можно методом FindControl найти Control... / 25 сообщений из 26, страница 1 из 2
02.03.2005, 12:38
    #32940802
Mormudon
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
А как можно методом FindControl найти Control...
Привет всем!!!

Хочу в DataGrid найти Сontrol при попадание в режим редактирования события EditCommand
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
Private Sub grdCourses_EditCommand(ByVal source As Object, ByVal e As System.Web.UI.WebControls.DataGridCommandEventArgs) Handles grdCourses.EditCommand
        grdCourses.EditItemIndex = e.Item.ItemIndex
        Dim lstEditCourseA As DropDownList = CType(e.Item.FindControl("lstEditCourse"), DropDownList)
        Dim lstEditValA As DropDownList = CType(e.Item.FindControl("lstEditVal"), DropDownList)
        Dim txtSell As TextBox = CType(e.Item.FindControl("txtSell"), TextBox)
        Dim txtBuy As TextBox = CType(e.Item.FindControl("txtBuy"), TextBox)
        lstEditCourseA.DataBind()
        lstEditValA.DataBind()

        BindData()
    End Sub

Control`ы находятся в EditItemTamplate
...
Рейтинг: 0 / 0
02.03.2005, 13:14
    #32940941
Mormudon
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
А как можно методом FindControl найти Control...
приведенный выше код ничего ненаходит....

Неужели никто незнает
...
Рейтинг: 0 / 0
02.03.2005, 14:08
    #32941176
hDrummer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
А как можно методом FindControl найти Control...
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
        private void dgEditor_ItemDataBound(object sender, DataGridItemEventArgs e)
        {
            if (e.Item.ItemType == ListItemType.EditItem)
            {
                // ищем и устанавливаем для редактирования верные значения в ниспадающих списках
                // для дней
                DataRowView drv = (DataRowView) e.Item.DataItem;
                string state = drv["req_state"].ToString();
                if (state.Trim() != "0")
                {
                    DropDownList ddl = (DropDownList) e.Item.Cells[ 4 ].Controls[ 1 ];
                    ddl.SelectedValue = state;
                }
            }
        }

можно и через FindControl, а не так - e.Item.Cells[4].Controls[1];
...
Рейтинг: 0 / 0
02.03.2005, 14:10
    #32941191
hDrummer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
А как можно методом FindControl найти Control...
Ну это на c# естественно, я думаю на vb.net всё примерно также должно выглядеть.
...
Рейтинг: 0 / 0
02.03.2005, 14:15
    #32941206
Mormudon
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
А как можно методом FindControl найти Control...
Через FindControl - значение (Nothing)
...
Рейтинг: 0 / 0
02.03.2005, 14:17
    #32941212
Mormudon
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
А как можно методом FindControl найти Control...
в том то и дело, что ненаходит Control в Datagrid
...
Рейтинг: 0 / 0
02.03.2005, 14:27
    #32941253
Mormudon
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
А как можно методом FindControl найти Control...
ненаходит DropDownList в EditItemTamplate методом
Код: plaintext
e.Item.FindControl("lstEditOper")=Nothing
...
Рейтинг: 0 / 0
02.03.2005, 14:45
    #32941342
Kilroy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
А как можно методом FindControl найти Control...
и не найдет,
у тебя на момент обработки события работает ItemTemplate,
а контролы сидят в EditItemTemplate
...
Рейтинг: 0 / 0
02.03.2005, 14:53
    #32941365
Mormudon
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
А как можно методом FindControl найти Control...
Так а как их выдернуть то оттуда
...
Рейтинг: 0 / 0
02.03.2005, 14:57
    #32941384
Kilroy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
А как можно методом FindControl найти Control...
В обработчике данного события - никак
...
Рейтинг: 0 / 0
02.03.2005, 14:58
    #32941388
Mormudon
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
А как можно методом FindControl найти Control...
тогда как быть?
...
Рейтинг: 0 / 0
02.03.2005, 15:09
    #32941443
Kilroy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
А как можно методом FindControl найти Control...
К примеру в Page_Load проверяй grdCourses.EditItemIndex,
если он не -1, то грид грузится в режиме редактирования,
получай DataGridItem по этому индексу и ищи в нем
свои контролы
...
Рейтинг: 0 / 0
02.03.2005, 16:25
    #32941746
Mormudon
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
А как можно методом FindControl найти Control...
Код: plaintext
1.
2.
3.
4.
5.
Private Sub grdCourses_EditCommand(ByVal source As Object, ByVal e As System.Web.UI.WebControls.DataGridCommandEventArgs) Handles grdCourses.EditCommand
        grdCourses.EditItemIndex = e.Item.ItemIndex
        Dim DataItemA As DataGridItem = grdCourses.Items(grdCourses.EditItemIndex)
        Dim lstOper As DropDownList = CType(DataItemA.FindControl("lstEditOper"), DropDownList)
        BindData()
    End Sub
Все равно ненаходит или может я что то не так делаю?
...
Рейтинг: 0 / 0
02.03.2005, 16:38
    #32941812
Kilroy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
А как можно методом FindControl найти Control...
Ну да Page_Load раньше отработает, но все равно в SelectCommand мы в Item'е имеем содержимое ItemTemplat'a, а не EditItemTemplat'a и контролов из него нет, что сделать то с ними нужно?
...
Рейтинг: 0 / 0
02.03.2005, 16:39
    #32941818
Kilroy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
А как можно методом FindControl найти Control...
блин, не в SelectСommand, а в EditCommand
...
Рейтинг: 0 / 0
02.03.2005, 16:40
    #32941820
Mormudon
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
А как можно методом FindControl найти Control...
надо загрузить список рпераций и поставить нужную по умолчанию
...
Рейтинг: 0 / 0
02.03.2005, 16:58
    #32941868
Kilroy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
А как можно методом FindControl найти Control...
В ItemDataBound до них можно добраться

вот пример
...
Рейтинг: 0 / 0
02.03.2005, 17:04
    #32941889
hDrummer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
А как можно методом FindControl найти Control...
В моём примере как раз ItemDataBound и используется, если кто код вообще смотрел :)
...
Рейтинг: 0 / 0
02.03.2005, 17:08
    #32941897
Mormudon
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
А как можно методом FindControl найти Control...
Что то я никак в толк не возьму, плохо понимаю по C#
...
Рейтинг: 0 / 0
02.03.2005, 17:17
    #32941936
Mormudon
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
А как можно методом FindControl найти Control...
Что то и первый пример и второй у меня не работают, может Васик этого не может?
...
Рейтинг: 0 / 0
02.03.2005, 17:18
    #32941942
Kilroy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
А как можно методом FindControl найти Control...
2 hDrummer

Блин, абсолютно верный вариант :)), конец дня - от кода
всякого в разных окнах в глазах рябит :))
...
Рейтинг: 0 / 0
02.03.2005, 18:07
    #32942142
Mormudon
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
А как можно методом FindControl найти Control...
Да, простите был крайне не внимателен, забыл про ListItemType.EditItem, все вроде получилось, но данные что то не биндятся
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
    Private Sub grdCourses_EditCommand(ByVal source As Object, ByVal e As System.Web.UI.WebControls.DataGridCommandEventArgs) Handles grdCourses.EditCommand
        grdCourses.EditItemIndex = e.Item.ItemIndex
        If e.Item.ItemType = ListItemType.EditItem Then
            Dim x As DataRowView = e.Item.DataItem
            Dim lstEditOperA As DropDownList = CType(e.Item.FindControl("lstEditOper"), DropDownList)
            Dim lstEditValA As DropDownList = CType(e.Item.FindControl("lstEditVal"), DropDownList)
            lstEditOperA.DataBind()
            lstEditValA.DataBind()
        End If
        BindData()
    End Sub
...
Рейтинг: 0 / 0
02.03.2005, 18:08
    #32942146
Mormudon
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
А как можно методом FindControl найти Control...
пустые контролы
...
Рейтинг: 0 / 0
03.03.2005, 09:34
    #32942801
hDrummer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
А как можно методом FindControl найти Control...
Вот это
e.Item.FindControl("lstEditVal")
надо заменить на
e.Item.Cells[4].Controls[1];
и будет счастье.

Циферки только другие.
...
Рейтинг: 0 / 0
03.03.2005, 10:28
    #32942953
Kilroy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
А как можно методом FindControl найти Control...
Ну ё моё!!!

Ну сколько автору вопроса повторять, что в в момент события EditCommand
этих контролов НЕ СУЩЕСТВУЕТ , их нужно заполнять в обработчике
ItemDataBound
...
Рейтинг: 0 / 0
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / А как можно методом FindControl найти Control... / 25 сообщений из 26, страница 1 из 2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]