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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Постраничный вывод информации в GridView с использ 
:(
    Опции темы
Telsystems
Дата 10.6.2013, 13:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Доброго времени суток. Нужно вывести по 5 записей на странице с возможностью перехода на другую страницу.

Технология Asp.Net WebForms

Решил использовать для этого GridView а для заполнения данными LinqDataSource.

Создаю сам грид
Код


<asp:GridView ID="gvEmployees"
   runat="server"
   AllowPaging="True"
   PageSize="5"
   AllowSorting="True"
   DataSourceID="LinqDataSource1"
   EmptyDataText="Элементов нет"
   AutoGenerateColumns="False">
    <Columns>
        <asp:BoundField SortExpression="Title" DataField="EmployeeId" HeaderText="ID" />
        <asp:BoundField SortExpression="Title" DataField="EmployeeName" HeaderText="Name" />
        <asp:BoundField SortExpression="Title" DataField="EmployeeSalary" HeaderText="Salary" />
    </Columns>
</asp:GridView>
<asp:LinqDataSource ID="LinqDataSource1" runat="server" OnSelecting="LinqDataSource1_Selecting"></asp:LinqDataSource>


Заполняю его так:

Код


protected void LinqDataSource1_Selecting(object sender, LinqDataSourceSelectEventArgs e)
    {
       e.Result = from p in _employees
                       select new
                       {
                           EmployeeId = p.EmployeeId,
                           EmployeeName = p.EmployeeName,
                           EmployeeSalary = p.CalculateMonthlySalary()
                       };

    }


Проблема в том, что при перехоже по страницам идет загрузка данных по новой и добавление этих данных в GridViev.

Если сделать заполнение так: 
Код


<asp:GridView ID="gvEmployees"
       runat="server"
       AllowPaging="True"
       PageSize="<%# PAGE_SIZE %>"
        AllowSorting="True"
        DataSourceID="LinqDataSource1"
        EmptyDataText="Элементов нет"
        AutoGenerateColumns="false">
        <Columns>
            <asp:BoundField SortExpression="Title" DataField="EmployeeId" HeaderText="ID" />
            <asp:BoundField SortExpression="Title" DataField="EmployeeName" HeaderText="Name" />
            <asp:BoundField SortExpression="Title" DataField="EmployeeSalary" HeaderText="Salary" />
        </Columns>
    </asp:GridView>
    <asp:LinqDataSource ID="LinqDataSource1" runat="server" OnSelecting="LinqDataSource1_Selecting"></asp:LinqDataSource>


Код


protected const int PAGE_SIZE = 5;
protected void LinqDataSource1_Selecting(object sender, LinqDataSourceSelectEventArgs e)
        {            
            var query = from p in _employees
                        select new
                        {
                            EmployeeId = p.EmployeeId,
                            EmployeeName = p.EmployeeName,
                            EmployeeSalary = p.CalculateMonthlySalary()
                        };

            e.Arguments.TotalRowCount = query.Count();
            query =  query.Skip(gvEmployees.PageIndex * PAGE_SIZE).Take(PAGE_SIZE);
            e.Result = query;

        }

То выведется 5 записей, но пропадут кнопки навигации.

Как правильно сделать постраничный вывод данных?

Правильна ли такая реализация?

Спасибо!
PM MAIL   Вверх
jonie
Дата 20.6.2013, 10:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



вообще говорят работать должно: http://www.codeproject.com/Tips/458801/Eff...INQ-Sample-Code
врут?) проверьте что все свойства указали в нужные параметры..


--------------------
Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет...
PM MAIL Jabber   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
Любитель
Mymik
mr.DUDA

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

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

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


 




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


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

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