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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> GridView шаг за шагом, Куча вопросов новичка :) 
:(
    Опции темы
vlsaf
Дата 3.3.2008, 19:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 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

Вы догадываетесь, о чем я. Т.е. как организовывется навигация по таблице?





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


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1474
Регистрация: 12.5.2006
Где: Lamer-центер

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



тебе надо в ObjectDataSource выставить параметер EnablePaging в true. Зарезервировать два метода для paging'а SelectMethod и SelectCountMethod. Первый метод выбирает записи, минимум, по двум параметрам (я точно не помню их, но это номер страницы и размер страницы), а второй выбирает общее количество записей удовлетворяющих условию параметров для страничного вывода (это если используются два дополнительный параметра).
В GridView выставить AllowPaging в true и выставить размер страницы.


--------------------
ICQ ::            857-857
E-mail ::         mymik[at]inbox[dot]ru 
HomaPage ::  http://localhost/

:to_become_senile  :this
PM MAIL WWW ICQ   Вверх
vlsaf
Дата 4.3.2008, 11:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Вопрос №2

Т.к. у меня везде хранимки, то reader, созданный на основе хранимок
Код

...
SqlCommand myCmd = new SqlCommand("Unternehmen_Select", myConn);
myCmd.CommandType = CommandType.StoredProcedure;
...
...
SqlDataReader reader;
try
{
            myConn.Open();
            reader = myCmd.ExecuteReader();
            myConn.Close();
            return reader;
}
...



для asp представляет собой "загадку". ASP не может понять, из каких полей состоит reader.

Руки, конечно, еще кривоваты, но не мог ли кто-нибудь показать, как 
делается ObjectDataSource. А именно блок, отвечающий за выборку данных
PM   Вверх
Mymik
Дата 4.3.2008, 17:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1474
Регистрация: 12.5.2006
Где: Lamer-центер

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



vlsaf, возвращай DataTable.
И еще. у тебя в 11 строке закрывается соединение с базой данных... а как оно будет выбирать данные  ???


--------------------
ICQ ::            857-857
E-mail ::         mymik[at]inbox[dot]ru 
HomaPage ::  http://localhost/

:to_become_senile  :this
PM MAIL WWW ICQ   Вверх
vlsaf
Дата 4.3.2008, 18:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Опять использую ObjectDataSource. Там легко ловить исключения SQL сервера.
Уже почти все работает.
Только не могу скрыть ненужные колонки в гриде.
Например колонку с ID. 

Как скрыть колонку?


В дизайнере стоит галка автоматически генерировать колонки.
Иниче я их не вижу.
Но генерятся все колонки. А мне из всех нужно одну скрыть. 

PM   Вверх
Mymik
Дата 4.3.2008, 22:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1474
Регистрация: 12.5.2006
Где: Lamer-центер

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



Тебе нужно отказаться от автоматической генерации колонок и забить их вручную.


--------------------
ICQ ::            857-857
E-mail ::         mymik[at]inbox[dot]ru 
HomaPage ::  http://localhost/

:to_become_senile  :this
PM MAIL WWW ICQ   Вверх
vlsaf
Дата 5.3.2008, 11:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Mymik, спасибо smile


Еще вопрос.

Если я отмечаю строку в гриде, срабатывает событие GridView1_SelectedIndexChanged

Как мне там добраться до значений Row отмеченой строки?
Нужно выцепить значение ID отмеченой строки. 
Но колонки под ID нет. Я эту колонку убрал, чтобы не путать юзера.

Это сообщение отредактировал(а) vlsaf - 5.3.2008, 11:58
PM   Вверх
vlsaf
Дата 5.3.2008, 12:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



В гриде описываю, какое поле является ключевым

<asp:GridView ID="GridView1" runat="server" AllowPaging="True" DataKeyNames="unternehmenID" ... 

И в обработке события выцепляю значение ключа

Код

GridView1.SelectedDataKey.Value


Это сообщение отредактировал(а) vlsaf - 5.3.2008, 12:48
PM   Вверх
vlsaf
Дата 5.3.2008, 16:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Как сделать, чтобы при выборе строки главной таблицы обновлялась подчиненная?

Главная и подчиненная это гриды.

............................
Извратился.  smile  Чтобы пошло обновление написал
Код

GridView2.Sort("", SortDirection.Ascending);



Если кто знает правильный способ, милости прошу 

Это сообщение отредактировал(а) vlsaf - 5.3.2008, 16:57
PM   Вверх
PashaPash
Дата 5.3.2008, 17:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1233
Регистрация: 3.1.2008

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



vlsaf, 
Код

GridView2.DataBind();



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


Опытный
**


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

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



PashaPash, точно. Спасибо.



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

............

Используйте EmptyDataText или EmptyDataTemplate если что-то хотите видеть даже тогда когда данных нету. На крайняк - есть много других хороших и дорогих контролов, прямо пачками и продаюццо. А .NET Framework как известно распространяется бесплатно, так что наслаждайтесь.

Это сообщение отредактировал(а) vlsaf - 6.3.2008, 11:50
PM   Вверх
Mymik
Дата 6.3.2008, 11:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1474
Регистрация: 12.5.2006
Где: Lamer-центер

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



Цитата(vlsaf @  6.3.2008,  11:23 Найти цитируемый пост)
Еще вопрос. Если записей нет, можно ли указать, чтобы у грида выводилась шапка? 

нет


--------------------
ICQ ::            857-857
E-mail ::         mymik[at]inbox[dot]ru 
HomaPage ::  http://localhost/

:to_become_senile  :this
PM MAIL WWW ICQ   Вверх
vlsaf
Дата 6.3.2008, 20:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Народ, подскажите, как сделать, чтобы при редактировании ширина колонок в гриде была такой же как при просмотре?

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

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

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

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


 




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


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

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