2013-05-03 18 views
8

में ग्रुप ऑर्डर को नियंत्रित करना क्या केंडो यूआई ग्रिड में समूह के क्रम को नियंत्रित करने का कोई तरीका है। एक समूह है जो मैं अन्य सभी समूहों के सामने जाना चाहता हूं, लेकिन ऐसा लगता है कि केंडो यूआई ग्रिड समूह को वर्णानुक्रम में टाइप करता है। मुझे पता है कि समूह नाम के लिए एक जगह जोड़ना काम करता है लेकिन यह बहुत हैकिश लगता है। एक बार आप अपने डेटा है जैसेएक केंडो यूआई ग्रिड

columns: [ 
{ 
field: "LastName", 
title: "Last Name" 
}, 
{ 
field: "FirstName", 
title: "First Name" 
} 
] 
+0

नाम के सामने एक जगह जोड़ने के बारे में टिप के लिए धन्यवाद (पिछली छोर से) - जब यूआई में इसे प्रस्तुत किया जाता है तो अंतरिक्ष वास्तव में हटा दिया जाता है –

उत्तर

5

वर्तमान में समूह के क्षेत्र के अलावा किसी अन्य चीज़ पर समूहबद्ध करने का कोई तरीका नहीं है। टेलरिक जैसे समूहों को सॉर्ट करने का एक तरीका होने से उनके गैर-केंडो ग्रिड में अभी उनके लिए सबसे बड़ा फीचर अनुरोध है। तो हम अब के लिए हैक का उपयोग कर फंस गए हैं।

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

उदाहरण के लिए, अपने डेटा था यदि:

[ 
    { 
     'Name': 'Alice', 
     'Rank': 10, 
     'RankName': '<span class="myHiddenClass">10</span>Alice', 
     ... (other fields) 
    }, 
    { 
     'Name': 'Bob', 
     'Rank': 9, 
     'RankName': '<span class="myHiddenClass">09</span>Bob', 
     ... (other fields) 
    }, 
    { 
     'Name': 'Eve', 
     'Rank': 11, 
     'RankName': '<span class="myHiddenClass">11</span>Eve', 
     ... (other fields) 
    } 
    ... (Multiple Alice/Bob/Eve records) 
] 

तो मैं कर सकते हैं RankName क्षेत्र के बजाय नाम फ़ील्ड द्वारा समूह। यह समूह शीर्षलेख में नाम फ़ील्ड प्रदर्शित करेगा लेकिन रैंक फ़ील्ड द्वारा क्रमबद्ध किया जाएगा। इस मामले में, बॉब पहले समूह के रूप में दिखाई देगा, भले ही ऐलिस पहले वर्णानुक्रम में था। यह आपके द्वारा उल्लिखित स्पेस पैडिंग के समान ही काम करता है।

-2

उपयोग कॉलम कॉलम के क्रम निर्दिष्ट करने के लिए - समूह हैं ग्रुपिंग नहीं होने पर स्तंभ को सॉर्ट किया गया है (क्लाइंट सॉर्टिंग का उपयोग करते समय) को सॉर्ट करें। सॉर्टिंग दिशा जावास्क्रिप्ट में डिफ़ॉल्ट प्रकार के समान है।

0

कस्टम दिशा छँटाई जब समूहीकरण नहीं है ग्रिड द्वारा समर्थित

धन्यवाद सिंह

0

के बाद आप डेटा स्रोत को परिभाषित किया है एक प्रश्न जोड़ सकते हैं और यह काम करने के लिए

related.query({ 
     sort: { field: "Sort", dir: "asc"}, 
     group: { field: "CategoryName" }, 
     pageSize: 50 
    }); 

कहाँ से संबंधित डेटा स्रोत का नाम

2

केंडो के समूहीकरण एक दिया द्वारा सरणी में सभी तत्वों को सॉर्ट करता है लगता है फ़ील्ड (उदाहरण के लिए fooBar), फिर सॉर्ट किए गए तत्वों को पुन: सक्रिय करता है। संक्षेप में, छद्म कोड के साथ में:

if (element[i].fooBar!= element[i-1].fooBar) { 
    StartNewGroup(element[i]); 
} else { 
    AddToLastGroup(element[i]); 
} 

के बाद से क्रमबद्ध सरणी समूहीकरण करने के लिए आवश्यक है, यह छंटाई बदलने के लिए मुश्किल है। अपने पृष्ठ लोड करने के बाद कुछ बिंदु पर

function overrideKendoGroupBy() { 
    var origFunc = kendo.data.Query.prototype.groupBy; 
    kendo.data.Query.prototype.groupBy = function (descriptor) { 
     var q = origFunc.call(this, descriptor); 

     var data = SortYourData(q.data, descriptor.dir); 

     return new kendo.data.Query(data); 
    }; 
} 

कॉल overrideKendoGroupBy(): मैं आंतरिक groupBy() समारोह है, जो मुझे वर्गीकृत किया परिणामों लेकिन मुझे पसंद सॉर्ट करने के लिए अनुमति देता है ओवरराइड करने के लिए कोड बनाया। अब केवल SortYourData() फ़ंक्शन लागू करें जहां q.data समूह की एक सरणी है, और descriptor.dir"asc" या "desc" है। q.data[n] में items सरणी है जिसमें आपके मूल डेटा स्रोत से तत्व शामिल हैं जो n वें समूह में निहित हैं।

नोट: यह समाधान केवल तभी काम करता है जब आप पेजिंग का उपयोग नहीं कर रहे हैं। ग्रुपिंग लागू होने से पहले पृष्ठों को तोड़ दिया जाता है, इसलिए यदि आपका डेटा एकाधिक पृष्ठों को फैलाता है तो सभी शर्त बंद हो जाती हैं।

0

प्रयास करें AddDescending और AddAscending, नीचे

@(Html.Kendo().Chart<T>() 
[... other code ...] 
.DataSource(ds => ds 
    .Read(read => read.Action("action", "controller")) 
    .Group(g => g.AddDescending(model=> model.property)) // <-- subtle difference here! 
) 
[... other code ...] 
) 

http://www.telerik.com/forums/stacked-chart-legend-order

0

उदाहरण देखें यहाँ इस के लिए एक सरल समाधान नहीं है। सुंदर लेकिन काफी सरल नहीं ...

बस ऊपर

[{ 
     'Value': 1, 
     'Description': 'Description 1', 
     'Grouping': 'Group 1' 
    }, 
    { 
     'Value': 2, 
     'Description': 'Description 2', 
     'Grouping': ' Group 2' 
    }, 
    { 
     'Value': 3, 
     'Description': 'Description 3', 
     'Grouping': 'Group 3' 
    }] 

छँटाई नमूना कोड में समूह 2 वांछनीय प्राप्त करने के लिए पाठ के सामने खाली स्थान पहले दिखाई देने वाला समूह 1 एक अग्रणी स्थान की वजह से

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