Модераторы: gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Опять GridView и данные строки, Как достучаться? 
:(
    Опции темы
andrew_sh
Дата 3.10.2007, 00:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 60
Регистрация: 12.6.2007

Репутация: нет
Всего: нет



Здравствуйте ! Помогите разобраться. Если column у грида имеет тип BoundField, то достучаться(из обработки события удаления строки) до содержимого можно так
Код

string s1 = GridView1.Rows[e.RowIndex].Cells[0].Text;

А если например тип column будет HyperLink (Вышеописанный код возвращает пустую строку) ?????


PM MAIL   Вверх
andrew_sh
Дата 3.10.2007, 17:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 60
Регистрация: 12.6.2007

Репутация: нет
Всего: нет



А вообще можно то добраться до контрола в ячейке, или текста? неужели никто не пользуется такими приемами?
PM MAIL   Вверх
Pankon
Дата 4.10.2007, 10:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 739
Регистрация: 2.6.2005

Репутация: 2
Всего: 5



GridView1.Rows[e.RowIndex].Cells[0].FindControl.....
PM MAIL   Вверх
andrew_sh
Дата 4.10.2007, 11:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 60
Регистрация: 12.6.2007

Репутация: нет
Всего: нет



FindControl() насколько я знаю ищет контрол по ID..... В моем случае (и вообще чаще всего) GridView заполняется динамически. И неизвество ID контрола в ячейке.... Или я в чем то не прав ??? Если можно пример кода !!!   Спасибо.
PM MAIL   Вверх
Pankon
Дата 5.10.2007, 10:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 739
Регистрация: 2.6.2005

Репутация: 2
Всего: 5



andrew_sh, всегда использую TemplateField, поэтому использую FindControl, в твоем сличае должно заработать:
Код

        HyperLink hprlnk = ((HyperLink)GridView1.Rows[e.RowIndex].Cells[0].Controls[0]);





PM MAIL   Вверх
tol05
Дата 5.10.2007, 10:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1632
Регистрация: 21.12.2006
Где: Харьков

Репутация: 34
Всего: 170



Цитата(andrew_sh @  3.10.2007,  17:13 Найти цитируемый пост)
А вообще можно то добраться до контрола в ячейке, или текста? неужели никто не пользуется такими приемами? 

несомненно.
 
Код

void CustomersGridView_RowDataBound(Object sender, GridViewRowEventArgs e)
  {
        
    if(e.Row.RowType == DataControlRowType.DataRow)
    {
      string str = e.Row.Cells[1].Text;
        
    }
    
  }




--------------------
На хорошей работе и сны хорошие снятся.
PM MAIL   Вверх
Pankon
Дата 5.10.2007, 10:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 739
Регистрация: 2.6.2005

Репутация: 2
Всего: 5



tol05, 
Цитата(andrew_sh @  3.10.2007,  17:13 Найти цитируемый пост)
А вообще можно то добраться до контрола в ячейке, или текста? 
Цитата(andrew_sh @  3.10.2007,  00:51 Найти цитируемый пост)
если например тип column будет HyperLink


PM MAIL   Вверх
tol05
Дата 5.10.2007, 11:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1632
Регистрация: 21.12.2006
Где: Харьков

Репутация: 34
Всего: 170



Pankon, 
Цитата(andrew_sh @  3.10.2007,  17:13 Найти цитируемый пост)
А вообще можно то добраться до контрола в ячейке, или текста?

я написал.
Цитата(andrew_sh @  3.10.2007,  17:13 Найти цитируемый пост)
А вообще можно то добраться до контрола в ячейке, или текста?

ты написал.

А вообще-то, мне кажется, что проблема была в том, ГДЕ и КАК это сделать....
Не через 
Цитата(Pankon @  4.10.2007,  10:34 Найти цитируемый пост)
GridView1.Rows[e.RowIndex].Cells[0].FindControl
по крайней мере, если уже в обработчик конкретная строка передается уже.
К тому же только в RowDataBound ячейка получит свое значение

 smile 


Это сообщение отредактировал(а) tol05 - 5.10.2007, 11:03


--------------------
На хорошей работе и сны хорошие снятся.
PM MAIL   Вверх
Pankon
Дата 5.10.2007, 11:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 739
Регистрация: 2.6.2005

Репутация: 2
Всего: 5



tol05,  в первом топике andrew_sh уже показал, КАК он получает текст(наверное похуже, чем ты предложил) и сказал ГДЕ (из обработки события удаления строки) и описал проблему:
Цитата(andrew_sh @  3.10.2007,  00:51 Найти цитируемый пост)
А если например тип column будет HyperLink (Вышеописанный код возвращает пустую строку) ?????


PM MAIL   Вверх
andrew_sh
Дата 5.10.2007, 18:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 60
Регистрация: 12.6.2007

Репутация: нет
Всего: нет



Код

HyperLink hprlnk = ((HyperLink)GridView1.Rows[e.RowIndex].Cells[0].Controls[0]);

То что доктор прописал smile  Огромное СПС !
PM MAIL   Вверх
DiCo
Дата 18.10.2007, 13:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 1
Регистрация: 18.10.2007

Репутация: нет
Всего: нет



Цитата(andrew_sh @ 5.10.2007,  18:58)
Код

HyperLink hprlnk = ((HyperLink)GridView1.Rows[e.RowIndex].Cells[0].Controls[0]);

То что доктор прописал smile  Огромное СПС !


..  на мой взгляд - обращаться через конкретные индексы  не очень корректно - работать будет,
  но стоит добавить контрол и все индексы заново проверять ...

  и  FindControl() прекрасно ищет контрол по ID для данного Row в GridView 
  так что то что они создаются динамически  - не важно так как поиск идет в конкретном ряду,
  главное чтоб ID был уникальный для данного row 

 еще , по крайней мере в ms vs 05,  есть удобный оператор as ..

 и вышеуказанный код можно было написать след образом :
  
Код

HyperLink hprlnk = GridView1.Rows[e.RowIndex].FindControl("id_linka") as HyperLink;

PM MAIL   Вверх
andrew_sh
Дата 4.11.2007, 14:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 60
Регистрация: 12.6.2007

Репутация: нет
Всего: нет



Цитата

и  FindControl() прекрасно ищет контрол по ID для данного Row в GridView 
  так что то что они создаются динамически  - не важно так как поиск идет в конкретном ряду,
  главное чтоб ID был уникальный для данного row 


Не совсем понятно....Как узнать ID (для  FindControl() ) динамически сгенерированого контрола ????
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
Любитель
Mymik
mr.DUDA

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Любитель, Mymik, mr.DUDA.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Разработка под ASP.NET | Следующая тема »


 




[ Время генерации скрипта: 0.0513 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.