![]() |
|
Модераторы: gambit |
![]()
|
|
| Bogdan1024 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1436 Регистрация: 28.9.2005 Где: Киев Репутация: 1 Всего: 13 |
В контроле GridView реально как-то реализовать кнопку типо "Добавить новую запись"? А то смотрю, клацаю, Edit и Delete ясно как, а как Add сделать не ясно совсем. Или другое использовать нужно что-то?
-------------------- ![]() |
|||
|
||||
| dazy |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 344 Регистрация: 15.9.2006 Репутация: 4 Всего: 8 |
В футер или хедер добавь кнопку "Добавить",
При клике добавляется новая запись, со значениями по умолчанию, и табличка переводится в режим редактирования этой записи. |
|||
|
||||
| Bogdan1024 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1436 Регистрация: 28.9.2005 Где: Киев Репутация: 1 Всего: 13 |
Как их туда добавить, что это за свойство такое? И разве хэдер - это не ряд с названиями колонок?
-------------------- ![]() |
|||
|
||||
| tol05 |
|
||||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1632 Регистрация: 21.12.2006 Где: Харьков Репутация: 34 Всего: 170 |
dazy, а действительно, что ты имеешь в виду?
"В футер или хедер", "Засунуть надпись в хедер gridView" Ты не мог бы свои ответы сделать более информативными? Если сильно ломает, так может вообще не нужно отвечать на вопрос? У человека проблема, ему нужно помочь и помочь максимально действенно. У человека сегодня может быть проблема дома, на работе, у него просто болит голова или зуб, сегодня он плохо пишет код... Но, конечно, это только мое мнение... Bogdan1024, попробуй так: Для грида, связанного с заполненным данными источником данных:
Но если таблица будет связана с пустым источником данных (нет еще данных, ты их вводишь через этот грид), тогда Pager не отображается. Надо будет использовать шаблон:
P.S. обработчик кнопки
Это сообщение отредактировал(а) tol05 - 27.5.2007, 15:54 -------------------- На хорошей работе и сны хорошие снятся. |
||||||
|
|||||||
| Bogdan1024 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1436 Регистрация: 28.9.2005 Где: Киев Репутация: 1 Всего: 13 |
Добавил PagerTemplate, нигде никакой кнопки не появилось, а если редактировать этот теплейт, то она видна. Зато если добавить EmptyDataTemplate и удалить все записи, то она появляется.
Я так понял что у GridView нету механизма добавления записи? Тоесть, нужно сначала запросом добавить запись в базу, потом обновить GridView и сделать новую запись редактируемой? И как же мне узнать айдишник новой записи после её добавления? -------------------- ![]() |
|||
|
||||
| tol05 |
|
||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1632 Регистрация: 21.12.2006 Где: Харьков Репутация: 34 Всего: 170 |
Pager будет изображаться, если ты разрешил paging и есть несколько страниц грида с данными.
EmptyDataTemplate используется, если в гриде данных нет. Грид - умный, надо думать как его ... Грид имеет массу шаблонов, нужно самому решать, куда воткнуть эту возможность (я имею в виду - добавление строк). Прошу не воспринимать мой пример настолько буквально, проявить творчество... Я ведь не знаю, сколько у тебя строк, что это и когда появляется. Я просто отвечал на вопрос
главное, что идея ясна, подстрой теперь ее под свой конкретный код. Грид действительно не реализует возможность добавления строк в ASP.NET 2.0 ибо творцы-кормильцы порешали, что добавление записей желательно (и правильно, с их т.з.) делать через DetailView или FormView. ID для своих строк грид назначает сам, поскольку поддерживает INamingContainer и является контейнером наименования для своих строк и вложенных в шаблоны контролов. После того, как ты добавил строку в грид, ИМХО ее можно искать через
и т.д. А также есть большое кол-во разнообразных событий, которые тоже можно посмотреть на тему их юзания. Например, событие RowCreated - чем плохо? Для каждой создаваемой строки анализируешь любое поле (cell-значение) и если это то, что ты создал, берешь ссылку на эту строку и юзаешь. Это сообщение отредактировал(а) tol05 - 28.5.2007, 12:40 -------------------- На хорошей работе и сны хорошие снятся. |
||||
|
|||||
| Bogdan1024 |
|
||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1436 Регистрация: 28.9.2005 Где: Киев Репутация: 1 Всего: 13 |
Разве не два? А как их посмотреть?
Вот как? Ну я впринципе и делал через DetailView, просто хотелось чтобы было как в во многих просмотрщиках данных таблиц бд: нажал на нижний пустой ряд, а он сразу стал редактируем -------------------- ![]() |
||||
|
|||||
| dazy |
|
||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 344 Регистрация: 15.9.2006 Репутация: 4 Всего: 8 |
Да, пардон, надо было подробнее написать. Если сделать TemplatedField, то для него будут доступны следующие шаблоны: ItemTemplate AlternatingItemTemplate EditItemTemplate HeaderItemTemplte FooterTemplate Это для кажного поля. Для таблицы в целом еще доступны для редактирования EmptyDataTemplate и PagerTemplate. Повторюсь, редатирование шалонов, доступно только для TemplatedField. Вообще, я склоняюсь к мысли, что проще и удобнее все поля выводимиые в таблицу представлять как TemplatedField. Поначалу вроде проще использовать стандартные стредства, но потом, быстро приходишь к тому, что стандрартных стредств не хватает. А в шаблоны очень гибкий инструмент. Однако не все шаблоны показываются по умолчанию, например тот же footer, чтобы он отображался надо включить опцию ShowFooter = True. Совершенно верно, но если вы используете TemplatedField, то вы можете самостоятельно настраивать внешний вид этого хедера, например, к названию столбца добавить кнопочку добавления, типа такую [+]. Или картинку какю вставить.
В футер луще вставлять кнопку, но это кому как нравиться. Тут еще вот в чем дело, футер или хедер, они по ширине ограничены шириной поля. И тут зависит от вида таблицы, стоит ли применять данный способ. Ну например, в таблице одно основное текстовое поле, и пара-тройка мелких дополнительных полей. Конечно, тогда можно добавлять кнопку к футеру/хедеру основного поля, потому как таблица, как бы с этим полем ассоциирована. А бывает, нет такого основного поля, или его сложно выделить. Тогда кнопку лучше добавлять в PagerTemplate, но придется и пейджер самому реализовать. Надо, так же, не забыть включить отображение пейджера. Конечно, более универсальный способ вставки записи это поставить Panel (или div), в него кнопку(ки) и в него же GridView. Этот способ гораздо лучше, потому что он более универсальный. Кроме того не надо писать EmptyDataTemplate, ведь добавление записи должно быть возможно, даже когда нет ни одно записи.
Нужно знать способ, которым вы добавляете запись в таблицу. Что это за таблица, как получаете доступ и прочее. Но в общем случае, хранимая процедура, при добавлении записи может возвращать параметры, соотвественно может возвращать и вновь присвоеный ИД. Еще, можно, тупо генерить ИД самому, и передавать в БД при вставке. Но лучще так не делать. |
||||
|
|||||
![]()
|
| Прежде чем создать тему, посмотрите сюда: | |
|
|
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов. Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Любитель, Mymik, mr.DUDA. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Разработка под ASP.NET | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |