![]() |
|
Модераторы: gambit |
![]()
|
|
| vlsaf |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 423 Регистрация: 9.5.2007 Репутация: нет Всего: 1 |
Если можно я буду по шагам задавать вопросы.
Есть таблица на SQL 2005 с большим кол-вом записей, но малым кол-вом полей. Для этой таблицы существуют 4 ХП. MyTable_Select MyTable_Insert MyTable_Update MyTable_Delete Навигация по такой таблице должна идти при помощи виртуального пейджинга, если я правильно понял. Т.е. я задаю кол-во строк на странице и вибираю для работы только нужные мне данные для просмотра и редактирования. Например GridView.PageSize = 10 строк И просматриваю 5-ю страницу, т.е. записи с 50 по 59 Вопрос1. Должен ли я сам организовывать этот пейджинг или это делает GridView сам ? Если это делаю я, то тут все понятно, а если это делает Grid, то как сказать, чтобы он заполнил данными 5-ю страницу? Исходим из предположения, что источником данных для GridView является ObjectDataSourse Вы догадываетесь, о чем я. Т.е. как организовывется навигация по таблице? |
|||
|
||||
| Mymik |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1474 Регистрация: 12.5.2006 Где: Lamer-центер Репутация: 50 Всего: 78 |
тебе надо в ObjectDataSource выставить параметер EnablePaging в true. Зарезервировать два метода для paging'а SelectMethod и SelectCountMethod. Первый метод выбирает записи, минимум, по двум параметрам (я точно не помню их, но это номер страницы и размер страницы), а второй выбирает общее количество записей удовлетворяющих условию параметров для страничного вывода (это если используются два дополнительный параметра).
В GridView выставить AllowPaging в true и выставить размер страницы. -------------------- |
|||
|
||||
| vlsaf |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 423 Регистрация: 9.5.2007 Репутация: нет Всего: 1 |
Вопрос №2
Т.к. у меня везде хранимки, то reader, созданный на основе хранимок
для asp представляет собой "загадку". ASP не может понять, из каких полей состоит reader. Руки, конечно, еще кривоваты, но не мог ли кто-нибудь показать, как делается ObjectDataSource. А именно блок, отвечающий за выборку данных |
|||
|
||||
| Mymik |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1474 Регистрация: 12.5.2006 Где: Lamer-центер Репутация: 50 Всего: 78 |
vlsaf, возвращай DataTable.
И еще. у тебя в 11 строке закрывается соединение с базой данных... а как оно будет выбирать данные ??? -------------------- |
|||
|
||||
| vlsaf |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 423 Регистрация: 9.5.2007 Репутация: нет Всего: 1 |
Опять использую ObjectDataSource. Там легко ловить исключения SQL сервера.
Уже почти все работает. Только не могу скрыть ненужные колонки в гриде. Например колонку с ID. Как скрыть колонку? В дизайнере стоит галка автоматически генерировать колонки. Иниче я их не вижу. Но генерятся все колонки. А мне из всех нужно одну скрыть. |
|||
|
||||
| Mymik |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1474 Регистрация: 12.5.2006 Где: Lamer-центер Репутация: 50 Всего: 78 |
Тебе нужно отказаться от автоматической генерации колонок и забить их вручную.
-------------------- |
|||
|
||||
| vlsaf |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 423 Регистрация: 9.5.2007 Репутация: нет Всего: 1 |
Mymik, спасибо
Еще вопрос. Если я отмечаю строку в гриде, срабатывает событие GridView1_SelectedIndexChanged Как мне там добраться до значений Row отмеченой строки? Нужно выцепить значение ID отмеченой строки. Но колонки под ID нет. Я эту колонку убрал, чтобы не путать юзера. Это сообщение отредактировал(а) vlsaf - 5.3.2008, 11:58 |
|||
|
||||
| vlsaf |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 423 Регистрация: 9.5.2007 Репутация: нет Всего: 1 |
В гриде описываю, какое поле является ключевым
<asp:GridView ID="GridView1" runat="server" AllowPaging="True" DataKeyNames="unternehmenID" ... И в обработке события выцепляю значение ключа
Это сообщение отредактировал(а) vlsaf - 5.3.2008, 12:48 |
|||
|
||||
| vlsaf |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 423 Регистрация: 9.5.2007 Репутация: нет Всего: 1 |
Как сделать, чтобы при выборе строки главной таблицы обновлялась подчиненная?
Главная и подчиненная это гриды. ............................ Извратился.
Если кто знает правильный способ, милости прошу Это сообщение отредактировал(а) vlsaf - 5.3.2008, 16:57 |
|||
|
||||
| PashaPash |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1233 Регистрация: 3.1.2008 Репутация: 7 Всего: 49 |
vlsaf,
|
|||
|
||||
| vlsaf |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 423 Регистрация: 9.5.2007 Репутация: нет Всего: 1 |
PashaPash, точно. Спасибо.
Еще вопрос. Если записей нет, можно ли указать, чтобы у грида выводилась шапка? ............ Используйте EmptyDataText или EmptyDataTemplate если что-то хотите видеть даже тогда когда данных нету. На крайняк - есть много других хороших и дорогих контролов, прямо пачками и продаюццо. А .NET Framework как известно распространяется бесплатно, так что наслаждайтесь. Это сообщение отредактировал(а) vlsaf - 6.3.2008, 11:50 |
|||
|
||||
| Mymik |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1474 Регистрация: 12.5.2006 Где: Lamer-центер Репутация: 50 Всего: 78 |
нет -------------------- |
|||
|
||||
| vlsaf |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 423 Регистрация: 9.5.2007 Репутация: нет Всего: 1 |
Народ, подскажите, как сделать, чтобы при редактировании ширина колонок в гриде была такой же как при просмотре?
А то у меня ширина колонок увеличивается, причем не хило. |
|||
|
||||
![]()
|
| Прежде чем создать тему, посмотрите сюда: | |
|
|
Используйте теги [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. |