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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как узнать ряд в GridView, по нажатию на button 
V
    Опции темы
Edd
Дата 6.6.2008, 11:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



В GridView создан template, и туда добавлен button

Код

<asp:TemplateField HeaderText="Description" SortExpression="Description">
                                                    <ItemTemplate>
                                                        <asp:Button ID="ButtonDescription" runat="server" 
                                                            BorderStyle="None" OnClick="ButtonDescription_Click"
                                                            Text='<%# Bind("Description") %>' />
                                                    </ItemTemplate>
</asp:TemplateField>


Как узнать ряд в GridView по нажатию на button? Куда сделать Bind (например на Tag) где запишется номер  Row-а или как то подругому?
PM MAIL   Вверх
nnm2005
Дата 10.6.2008, 15:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Есть событие OnItemDataBound или OnRowDataBound, в MSDN найдёшь
PM MAIL   Вверх
Idsa
Дата 10.6.2008, 16:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник
Сообщений: 2086
Регистрация: 5.12.2006
Где: Томск

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



Цитата(nnm2005 @  10.6.2008,  15:18 Найти цитируемый пост)
Есть событие OnItemDataBound или OnRowDataBound, в MSDN найдёшь 

 smile

После щелчка на кнопке, находящейся внутри GridView, генерируется событие GridView.RowCommand. Кстати если у кнопки задано свойство CommandName="Delete", помимо RowCommand сгенерируются еще и события RowDeleting и RowDeleted. Подобные события генерируются еще для нескольких значений CommandName. Ладно, отвлекся я. Так вот в RowCommand передается аргумент типа GridViewCommandEventArgs, в котором, к сожалению, не содержится информация о строке, в которой находится элемент. Вот, что по этому поводу говорит MSDN:
Цитата

The GridViewCommandEventArgs class does not contain a property to indicate which row's button was clicked. If you need to know which row raised the event, pass the row's index to the event-handling method using the CommandArgument property.

Т. е. нужно присваивать, например, в RowDataBound совйству CommandName или CommandArgument индекс, по которому затем при обработке RowCommand можно было бы идентифицировать номер строки.

Это сообщение отредактировал(а) Idsa - 10.6.2008, 16:20


--------------------
Мой блог: alexidsa.blogspot.com
PM MAIL ICQ   Вверх
Edd
Дата 11.6.2008, 15:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Спасибо за советы.
Я эту проблемку решил немного другим образом.
В CssClass=bind("ID"), потом брал утот ID у Button 
Код


Button btn = (Button)sender;        
        string PtID = btn.CssClass.ToString();
        int index = 0;
        int i=0;
        foreach (GridViewRow selectedRow in GridViewPro.Rows)
{
 if (selectedRow.Cells[1].Text == PtID) index = i;
...
}

Может не красиво, но работает smile
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
Любитель
Mymik
mr.DUDA

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

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

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


 




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


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

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