linq

2009-04-18 6 views
5

के साथ डाटलिस्ट पेजिंग मैं एक पृष्ठ बना रहा हूं जो लिंकक डेटा एक्सेस का उपयोग करता है और मैं डेटा प्रदर्शित करने के लिए डेटालिस्ट का उपयोग कर रहा हूं। डेटा पेजिंग करने के लिए मैं लिंक का उपयोग कैसे कर सकता हूं? कृपया नीचे सरल कोड पढ़ें:linq

मैं आमतौर पर एक पेजेड डेटा स्रोत का उपयोग करता हूं लेकिन यह केवल डेटाटेबल के साथ काम करता प्रतीत होता है। पेज के पीछे के रूप में DataTable

Dim db As New DemoDataClassesDataContext() 

    Dim query = From st In db.students _ 
       Order By st.st_studentid Ascending _ 
       Select st 

    Dim dtStudent = New DataTable("myst") 


    dtStudent.Columns.Add("st_id", GetType(Integer)) 
    dtStudent.Columns.Add("st_userid", GetType(Guid)) 
    dtStudent.Columns.Add("st_studentid", GetType(Integer)) 
    dtStudent.Columns.Add("st_firstname", GetType(String)) 
    dtStudent.Columns.Add("st_lastname", GetType(String)) 
    dtStudent.Columns.Add("st_gender", GetType(String)) 
    dtStudent.Columns.Add("st_email", GetType(String)) 


    For Each q In query 
     dtStudent.Rows.Add(New Object() {q.st_id, q.st_userid, q.st_studentid, q.st_firstname, q.st_lastname, q.st_gender, q.st_email}) 
    Next 

    Return dtStudent 

End Function 

लोक साझा समारोह GetStudentList() कोड में:

यहाँ मेरी Linq DataTable जो Datalist साथ ही है वापस जाने के लिए है

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load 

    If Not Page.IsPostBack() Then 
     LoadData() 
    End If 

End Sub 

Private Sub LoadData() 
    dsStduent = da_Student.GetStudentList() 
    dt_Student.DataSource = dsStduent 
    dt_Student.DataBind() 

End Sub 

उत्तर

8

आपको .Skip() and .Take() विधियों को बहुत उपयोगी मिलेगा।

मैंने देखा है कि आपने अपनी परियोजना से कुछ कोड प्रदान किया है, इसलिए यहां इन तरीकों को लागू करने के तरीके पर एक अपडेट है।

डेटा प्राप्त करने के लिए अपने विधि में, निम्न कार्य करें:

Dim query = (From st In db.students _ 
      Order By st.st_studentid Ascending _ 
      Select st).Skip((CurrentPage - 1) * PageSize).Take(PageSize) 

तो विधि के तर्कों के रूप CurrentPage और PageSize चर प्रदान करते हैं। (आप उन्हें डेटा एक्सेस में नहीं बनाना चाहते हैं, क्योंकि वे आपकी साइट के विभिन्न हिस्सों में भिन्न हो सकते हैं ...)

+0

यह कैसे पहचानें कि डेटा इसकी अधिकतम सीमा तक पहुंच गया है या नहीं, हम अंतिम पृष्ठ पर हैं? –

+0

कुछ संयोजनों के माध्यम से काम किया। अब यह मेरे लिए काम कर रहा है। आपके उत्तर के लिए धन्यवाद :) –

2

आपको Skip() और Take() विधियों का उपयोग करके SQL Paging with LINQ पर देखने की आवश्यकता है।

संबंधित मुद्दे