ГЛАВНАЯ     АРХИВ     НАПИСАТЬ АДМИНУ     ПОДПИСАТЬСЯ НА RSS     ВОЙТИ      

Поиск

Категории

Облако тегов

  << Предыдущий пост       Следующий пост >>  
18. июля 2012 00:14

Практически все разработчики биндят свои Generic List-ы к ASP.NET контролам. Однако если список огромен, то вам нужно реализовать постраничность. Здесь простой пример реализации постраничности с использованием LINQ. Предполагается, что список в памяти.


C#



using System;


using System.Collections.Generic;


using System.Linq;


using System.Web;


using System.Web.UI;


using System.Web.UI.WebControls;


 


public partial class LINQ : System.Web.UI.Page


{


    protected void Page_Load(object sender, EventArgs e)


    {


        List<Employee> empList = new List<Employee>();


        empList.Add(new Employee() { ID = 1, FName = "John",  DOB = DateTime.Parse("12/11/1971")});


        empList.Add(new Employee() { ID = 2, FName = "Mary",  DOB = DateTime.Parse("01/17/1961")});


        empList.Add(new Employee() { ID = 3, FName = "Amber", DOB = DateTime.Parse("12/23/1971")});


        empList.Add(new Employee() { ID = 4, FName = "Kathy", DOB = DateTime.Parse("11/15/1976")});


        empList.Add(new Employee() { ID = 5, FName = "Lena",  DOB = DateTime.Parse("05/11/1978")});


 


        var records = from emp in empList


                      select emp;


        var pgNo = 1;


        var pgRec = 2;


        records = records.Skip((pgNo - 1) * pgRec).Take(pgRec);


 


        foreach (var r in records)


        {


            Console.WriteLine(r.FName);


        }


 


    }


 


    class Employee


    {


        public int ID { get; set; }


        public string FName { get; set; }


        public DateTime DOB { get; set; }


    }


 


}



VB.NET



Imports System


Imports System.Collections.Generic


Imports System.Linq


Imports System.Web


Imports System.Web.UI


Imports System.Web.UI.WebControls


 


Partial Public Class LINQ


    Inherits System.Web.UI.Page


    Protected Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs)


        Dim empList As New List(Of Employee)()


        empList.Add(New Employee() With {.ID = 1, .FName = "John", .DOB = DateTime.Parse("12/11/1971")})


        empList.Add(New Employee() With {.ID = 2, .FName = "Mary", .DOB = DateTime.Parse("01/17/1961")})


        empList.Add(New Employee() With {.ID = 3, .FName = "Amber", .DOB = DateTime.Parse("12/23/1971")})


        empList.Add(New Employee() With {.ID = 4, .FName = "Kathy", .DOB = DateTime.Parse("11/15/1976")})


        empList.Add(New Employee() With {.ID = 5, .FName = "Lena", .DOB = DateTime.Parse("05/11/1978")})


 


        Dim records = _


         From emp In empList _


         Select emp


        Dim pgNo = 1


        Dim pgRec = 2


        records = records.Skip((pgNo - 1) * pgRec).Take(pgRec)


 


        For Each r In records


            Console.WriteLine(r.FName)


        Next r


 


    End Sub


 


    Private Class Employee


        Private privateID As Integer


        Public Property ID() As Integer


            Get


                Return privateID


            End Get


            Set(ByVal value As Integer)


                privateID = value


            End Set


        End Property


        Private privateFName As String


        Public Property FName() As String


            Get


                Return privateFName


            End Get


            Set(ByVal value As String)


                privateFName = value


            End Set


        End Property


        Private privateDOB As DateTime


        Public Property DOB() As DateTime


            Get


                Return privateDOB


            End Get


            Set(ByVal value As DateTime)


                privateDOB = value


            End Set


        End Property


    End Class


 


End Class



Пример показывает, как использовать Skip() и Take() операции над списком.


Это перевод. Оригинал здесь.

Похожие записи


Вопросы на собеседовании C#, Net, ASP.NET, SQL
Продолжая тему вопросов на собеседовании. Нашел еще одну подборку. Оригинал лежит здесь . Перенес, чтобы не затерялось. Есть вполне вменяемые ответы (хотя, на некоторые вопросы ответил бы по-другому). Ответы находятся после списка вопросов, я их не менял. 23. Что такое шаблон проектирования Model/View/Controller? Как и зачем его применяют? 2...

Сортировка по полю с датой в Generic List с использованием LINQ
Давайте рассмотрим Generic List в элементах которого есть поле - дата. Допустим вы хотите отсортировать Generic List по полю дата, и хотите сделать это самым простым способом. Здесь написано как это сделать. Я добавил DropDownList с цельэ продемонстрировать результаты: C#   using System; using System.Collections.Generic; using System.Linq; usi...

7 методов для перечисления папок и файлов для использования в LINQ
.NET 4.0 предлагает 7 новых методов для перечисления подкаталогов и файлов. Все эти методы возвращают дженерик коллекцию (IEnumerable<T>), которая работает лучше чем массив. Особенно если результат нужно обрабатывать LINQ-ом. Вот эти 7 новых методов: Directory.EnumerateDirectories - Возвращает перечисляемую коллекцию имен каталогов по заданному пути Dire...

Добавить комментарий




biuquote
  • Комментарий
  • Предпросмотр
Loading


  Сохранить комментарий