2008-10-28 12 views
6

पृष्ठ नेविगेशन के लिए कोई HTML मददगार हैं। जैसे। अगर मेरे पास प्रदर्शित करने के लिए 1000 रिकॉर्ड हैं, तो मैं फ़िल्टर किए गए संग्रह के तहत पिछला 1 2 3 4 ... आदि अगला लिंक सामान प्रदर्शित करना चाहता हूं।एएसपी.नेट एमवीसी के लिए कोई पेज नेविगेशन हेल्पर्स?

कोई भी वहां से कुछ भी जानता है?

उत्तर

1
+6

एक लिंक 404 है, एक ब्लॉग के होम पेज पर एक अंक है, और अंतिम लिंक बिल्कुल उपयोगी नहीं है। FAIL! – Martin

+1

कुछ खोज करने के बाद, इस लिंक ने मुझे कुछ कोड की ओर इशारा किया जिसने मदद की: http://blogs.taiga.nl/martijn/2008/08/27/paging-with-aspnet-mvc/ – Martin

0

मेरे पास Dynamic Data for MVC sample application में एक पेजिंग ग्रिड है, लेकिन ग्रिड हाथ प्रदान किया जाता है। डेटा पेज्डलिस्ट का उपयोग कर रहा है, जो रोब कॉनरी से आया था (जो बदले में मुझे लगता है कि इसे स्कॉटगु से मिला है)।

मैं क्या कोई पृष्ठांकित ग्रिड सहायक MVC के लिए कैसा लग सकता है के बारे में सोच रहा है ...

+0

हाँ ब्रैड, मैं कुछ पूर्व बेक्ड नियंत्रणों का उपयोग करने से बचने की कोशिश कर रहा था क्योंकि उनमें कुछ वेबफॉर्म कोड कोड हो सकते हैं। हमें वायदा में बेक्ड की जरूरत है एचटीएमएल.पेजनविगेशन (...) सहायक जो बहुत सारे तर्क लेता है .. रिकॉर्ड की संख्या, रिकॉर्ड्स की कुल संख्या, सीएसएस कक्षाएं, या यहां तक ​​कि एक पेज्डलिस्ट (जो मैं भी LazyList (रोब कॉन को नोड) के साथ बड़े पैमाने पर उपयोग करें। मैंने एक पृष्ठ नामांकन लिखना शुरू कर दिया है: ViewUserControl उपयोगकर्ता नियंत्रण देखें जिसे किसी भी दृश्य पर कहीं भी गिराया जा सकता है। इसमें बेक्ड होने के कारण भी uber hawt होगा। शायद कोई –

3

आप JSON डेटा से डेटा की एक तालिका बना रहे हैं, मैं अत्यधिक यूयूआई (याहू यूआई लाइब्रेरी) डेटाटेबल घटक (http://developer.yahoo.com/yui/datatable/) की अनुशंसा करता हूं। यह पेजिंग बहुत अच्छी तरह से करता है और आपके पास पूरे क्लाइंट-साइड के माध्यम से शुरू करने के लिए पूरे रिकॉर्ड सेट को वापस करने का विकल्प होता है या सर्वर से एक पेज सेट सेट लौटाता है।

शायद आपके परिदृश्य में फिट नहीं होगा, लेकिन सिर्फ सोचा कि मैं इसका उल्लेख करूंगा।

0

मैंने अब तक पेजिंग के लिए क्या किया है पेजर नियंत्रण, यह एक पेजिंग यूआरएल, अद्यतन के लिए एचटीएमएल तत्व आईडी, पेज नंबर, पेज आकार और कुल गिनती लेता है।

पेजिंग यूआरएल प्रपत्र नियंत्रक/कार्रवाई जहां कार्रवाई देता है एक HTML स्ट्रिंग (डेटा का गाया पेज)

पेजर पृष्ठों के लिए जावास्क्रिप्ट लिंक की एक सूची संलग्न कर देता है की है। ये लिंक एक jQuery आधारित AJAX फ़ंक्शन को कॉल करते हैं जो पेजिंग यूआरएल को हिट करता है। प्रत्येक पृष्ठ AJAX कॉल के परिणामों के साथ HTML तत्व की वर्तमान सामग्री को प्रतिस्थापित करता है। कुछ इस तरह:

int.TryParse (Request.Params [ "PAGENUMBER"], बाहर पेज:

public string Render() 
{ 
    var buffer = new StringBuilder(1000); 
    buffer.AppendLine(@"<ul class=""datatable_pager"">") 
     .AppendLine("\t<li>Additional Pages:</li>"); 
    int numberOfPages = TotalItemCount % PageSize == 0 ? TotalItemCount/PageSize : TotalItemCount/PageSize + 1; 

    for(int i = 0; i < numberOfPages; i++) 
    { 
     AppendPageLink(buffer, i); 
    } 

    buffer.AppendLine("\t</ul>"); 
    AppendPagingJS(buffer); 

    return buffer.ToString(); 
} 

private void AppendPageLink(StringBuilder buffer, int i) 
{ 
    buffer.Append("\t\t<li><a href=\"") 
    .Append(PagingLink.Replace("$PAGE$", i.ToString())) 
    .Append("\">") 
    .Append(i.ToString()) 
    .Append("</a>") 
    .AppendLine("\t\t</li>"); 
} 


private void AppendPagingJS(StringBuilder buffer) 
{ 
    buffer.AppendLine(@" 
     <script type=""text/javascript""> 
     function page(page, size, updateElement) 
     { 
      $.post('" + PagingUrl + @"', 
       { 
        pageNumber: page, 
        pageSize: size, 
       }, 
       function(response) 
       { 
        $(""#"" + updateElement).html(response); 
       }, 
       ""html"" 
      ); 
     } 
     </script>"); 
} 

पेजिंग यूआरएल को जावास्क्रिप्ट पदों, इसलिए कार्रवाई तो की तरह कुछ करने की आवश्यकता होगी) int.TryParse (Request.Params ["पेज साइज"], आउट आकार))

और डेटा पेज को पकड़ने के लिए अपने डेटा एक्सेस घटकों के साथ परिणामों का उपयोग करें, इसे HTML के रूप में प्रस्तुत करें और इसे वापस करें।

आशा है कि मदद करता है, यदि आवश्यक हो तो मैं इसका विस्तार कर सकता हूं।

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