2013-03-18 15 views
8

मैं पेजिंग के साथ केंडो-यूआई ग्रिड का उपयोग करने की कोशिश कर रहा हूं। सब कुछ कुल विशेषता के लिए काम करने की अपेक्षा करता है, हालांकि मैंने इसे 100 तक सेट किया है, यह 10 आइटमों में से 1 - 10 दिखाता है जो पेज आकार मैं सेट कर रहा हूं। किसी के साथ इस में बेहतर सफलता थी? मैंने बिना किसी सफलता के केंडो दस्तावेज़ और मंच खोजे।केंडो यूआई - ग्रिड पेजिनेशन (सर्वर साइड)

@(Html.Kendo().Grid(Model) 
.Name("Grid") 
.Columns(columns => 
{ 
    foreach (System.Data.DataColumn column in Model.Columns) 
    { 
     columns.Bound(column.ColumnName); 
    } 
}) 
.Pageable() 
.Sortable() 
.Scrollable() 
.Filterable() 
.Groupable() 
.DataSource(dataSource => dataSource 
    .Ajax() 
    .PageSize(10) 
    .Total(100) 
    .Model(model => 
     { 
      foreach (System.Data.DataColumn column in Model.Columns) 
      { 
       model.Field(column.ColumnName, column.DataType); 
      }     
     }) 
    .Read(read => read.Action("Read", "Controls")) 
) 

)

धन्यवाद

+0

यदि आप "कुल" विशेषता को हटाते हैं तो क्या होगा? – JBntis

+0

क्या आप समाधान पोस्ट कर सकते हैं अगर आपने इसे एएसपी.NET एमवीसी रैपर का उपयोग करके हल किया है? – Lijo

उत्तर

12

As explained in the documentation जब serverPaging सक्षम किया गया है आप अपने स्कीमा में कुल निर्दिष्ट करने की आवश्यकता है और आप यह भी कहा कि कुल हर बार जब आप वास्तव में इस जगह स्कीमा द्वारा निर्दिष्ट पर सर्वर से प्रतिक्रिया लौट लौटना ही होगा।

dataSource: { 
    serverPaging: true, 
    schema: { 
     data: "data", 
     total: "total" 
    }, 
    //... 

उसी पर चर्चा की गई है here

निम्नलिखित example देखें।

+1

धन्यवाद, जैसा कि आप मेरे कोड से देख सकते हैं मैं केंडो रैपर का उपयोग कर रहा हूं, क्योंकि मेरा मॉडल डेटाटेबल है। मैं इसका इस्तेमाल करना पसंद करूंगा।मुझे एक ऐसा उदाहरण नहीं मिला जो एमवीसी रैपर के साथ काम करता है। – spooti

+0

आपकी नियंत्रक कार्रवाई कैसा दिखती है - पढ़ें। क्रिया ("पढ़ें", "नियंत्रण"))? –

+0

यह वही नहीं है जो मैं ढूंढ रहा था, लेकिन मैंने अपने कोड में कुछ बदलाव किए और इसे इस दृष्टिकोण के साथ काम करने के लिए मिला, धन्यवाद – spooti

0

मूल उदाहरण के लिए, "कुल" के अनुसार स्वचालित रूप से मान्यता प्राप्त हो जाएगा, और आप को दिखाने के लिए प्रति पृष्ठ 100 परिणाम "PageSize" में सेट के बजाय चाहते हैं ।

+0

मैं प्रति पृष्ठ 10 आइटम दिखाना चाहता हूं, और कहता हूं कि मेरे पास कुल – spooti

+0

कुल 100 आइटम हैं, मूल उदाहरण से, कोई भी "कुल" कहा गया है, इसे हटाने का प्रयास करें और आपको यह मिलेगा: 100 आइटमों में से 1 - 10 – JBntis

+1

काम करेगा अगर मैं सभी 100 आइटम वापस कर दूंगा, जो मैं नहीं चाहता हूं। मैं सर्वर साइड पेजिनेशन क्लाइंट साइड नहीं चाहता हूं। – spooti

0

आप ASP.NET MVC के लिए केंडो रैपर उपयोग करते हैं, को जोड़ने पर विचार:

.EnableCustomBinding(true) 

के रूप में इस article में विस्तार से बताया, कस्टम बंधन में निर्मित पेजिंग/छँटाई सुविधाओं बायपास करने के लिए अनुमति देता है। इस तरह, कुल मिलाकर लिया जाएगा।

+0

धन्यवाद आंद्रेई मैं इसे देख लूंगा – spooti

6

ठीक है, आपको अपनी प्रतिक्रिया में कुल फ़ील्ड पास करने की आवश्यकता है।

की तरह आपका दृश्य हो सकता है:

@(Html.Kendo().Grid<YourViewModel>() 
     .Name("grid") 
     .DataSource(dataSource => dataSource   
      .Ajax() 
      .PageSize(20) 
      .ServerOperation(true) 
      .Read(read => read.Action("Data_Read", "YourController", new {Id=Model.CurrentId})) 
     ) 
     .Columns(c => 
     { 
      c.Bound(x => x.Name); 
      c.Bound(x => x.CreatedTime); 
     }) 
     .Pageable() 
     .Sortable() 
) 

आपका कार्रवाई के रूप में नीचे दिए गए कोड:

public ActionResult Data_Read([DataSourceRequest]DataSourceRequest request, int Id) 
     { 
      int total = yourQuery.GetTotal(Id); 

      var returnViewModel = yourQuery.GetViewModels(Id, request.Page, request.PageSize); 


      return Json(new 
      { 
       Data = returnViewModel, 
       Total=total 
      }); 
     } 

अनुरोध देखें और फ़िडलर में प्रतिक्रिया कैसे जादू होता है आप देखेंगे: अनुरोध: प्रकार = सत्र Id-asc & पृष्ठ = 7 & पृष्ठ आकार = 20 & समूह = & फ़िल्टर =

वह DataSourceRequest प्रारूप है जो ग्रिड नियंत्रक को पास करता है; इसमें पहले से ही पेजिंग के लिए आवश्यक पैरामीटर शामिल हैं।

कार्रवाई से प्रतिक्रिया देखें और आप देखेंगे कि सभी रिकॉर्ड वाले डेटा फ़ील्ड हैं। केंटो ग्रिड के पेजिंग के लिए आवश्यक सभी रिकॉर्ड्स के लिए कुल क्षेत्र कुल राशि है।

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