2017-05-20 17 views
8

मेरे पास बहु-कॉलम हेडर वाले ग्रिड हैं और एक समूह कॉलम ए है जो लॉक है। यहाँ कोड है:Kendo-UI ग्रिड मल्टी-कॉलम हेडर प्रोग्रामेटिक रूप से अनलॉक करने के लिए कैसे करें

$scope.gridOptions.columns = [ 
      { 
       title: "A", locked: true, headerAttributes: { "class": "section-border" }, groupId : "A", 
       columns: [{ field: "ROW_HEADER", filterable: false, width: "20px", title: " .", sortable: false, locked: true, headerAttributes: { "class": "sub-col darkYellow-col rowHeaderHeadYellow", "style": "border-right: 0px !important;" }, attributes: { "class": "contert-alpha rowHeaderCell" } }, 
          { field: "COLUMN1", title: "COLUMN1", width: "80px", hidden: true, locked: true, headerAttributes: { "class": "sub-col darkYellow-col rowHeaderHead2" }, attributes: { "class": "" }, template: "#: COLUMN1)#" }, 
          { field: "COLUMN2", title: "COLUMN2", width: "150px", locked: true, headerAttributes: { "class": "sub-col darkYellow-col rowHeaderHead2" }, attributes: { "class": "" }, template: #:COLUMN2#} 
          ] 
      }, 
      { 
       title: "B", headerAttributes: { "class": "section-border" }, groupId: "B", 
       columns: [{ field: "COLUMN3", title: "COLUMN3", width: "110px", headerAttributes: { "class": "sub-col continuity" }, attributes: { "class": "contert-alpha center-middle" }, template: "#: COLUMN3 #" }, 
          { field: "COLUMN4", title: "COLUMN4", width: "120px", headerAttributes: { "class": "sub-col no-left-border" }, attributes: { "class": "contert-number " }, format: "{0: MM/dd/yyyy}" }, 
          }] 
      }] 

मैं प्रोग्राम के रूप में ग्रिड मुद्रण इतना है कि यह दो के बजाय एक ग्रिड के रूप में प्रकट होने से पहले समूह कॉलम एक अनलॉक करने के लिए चाहते हैं। मैंने प्रिंट करने से पहले COLUMN1, COLUMN2 और समूह कॉलम ए के लिए लॉक = झूठा सेट किया है लेकिन यह अभी भी लॉक रहता है। फिर मैंने प्रिंटिंग से पहले अनलॉक किए गए समूह कॉलम ए को सेट किया है और समूह अभी भी लॉक रहता है। मैं पुनरावर्ती विधि का उपयोग कर रहा है, लेकिन मैं उन्हें अनलॉक करने के लिए, लेकिन आदेश में इस कार्यक्षमता का सार दिखाने के लिए मैं इस अनलॉक करने के लिए कर रहा हूँ:

thisGrid.unlockColumn("A");thisGrid.unlockColumn("ROW_HEADER");thisGrid.unlockColumn("COLUMN1");thisGrid.unlockColumn("COLUMN2"); 

thisGrid कहाँ ऊपर ग्रिड के उदाहरण है। यदि किसी ने प्रोग्रामेटिक रूप से लॉक/अनलॉक किया है तो बहु-कॉलम हेडर कृपया मदद करें। धन्यवाद

+0

यह ग्रिड क्या है? यह कहाँ तय है? अनलॉक लागू करने का प्रयास कैसे कर रहे हैं? क्या यह एक बटन पर क्लिक है? –

+0

असल में मुझे इसका समाधान मिला है जिसे मैं उत्तर –

उत्तर

2

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

$scope.gridOptions.columns = [{ field: "ROW_HEADER", filterable: false, width: "20px", title: " .", sortable: false, locked: true, headerAttributes: { "class": "sub-col darkYellow-col rowHeaderHeadYellow", "style": "border-right: 0px !important;" }, attributes: { "class": "contert-alpha rowHeaderCell" } }, 
     { 
      title: "A", locked: true, headerAttributes: { "class": "section-border" }, groupId : "A", field: "DUMMY_FIELD" 
      columns: [ 
         { field: "COLUMN1", title: "COLUMN1", width: "80px", hidden: true, locked: true, headerAttributes: { "class": "sub-col darkYellow-col rowHeaderHead2" }, attributes: { "class": "" }, template: "#: COLUMN1)#" }, 
         { field: "COLUMN2", title: "COLUMN2", width: "150px", locked: true, headerAttributes: { "class": "sub-col darkYellow-col rowHeaderHead2" }, attributes: { "class": "" }, template: #:COLUMN2#} 
         ] 
     }, 
     { 
      title: "B", headerAttributes: { "class": "section-border" }, groupId: "B", 
      columns: [{ field: "COLUMN3", title: "COLUMN3", width: "110px", headerAttributes: { "class": "sub-col continuity" }, attributes: { "class": "contert-alpha center-middle" }, template: "#: COLUMN3 #" }, 
         { field: "COLUMN4", title: "COLUMN4", width: "120px", headerAttributes: { "class": "sub-col no-left-border" }, attributes: { "class": "contert-number " }, format: "{0: MM/dd/yyyy}" }, 
         }] 
     }] 

एक और मुद्दा यह कोई क्षेत्र संपत्ति वर्गीकृत किया स्तंभ एक में परिभाषित किया गया है कि वहाँ है, लेकिन हम करने के लिए या तो क्षेत्र संपत्ति या स्तंभ अनुक्रमणिका ताला/एक स्तंभ अनलॉक करने के लिए है, तो मैं field: "DUMMY_FIELD" वहाँ जोड़ दिया है और उसके बाद इसे अनलॉक की जरूरत है सफलतापूर्वक इस कोड का उपयोग कर: thisGrid.unlockColumn("DUMMY_FIELD")

0

सबसे पहले, unlockColumn ए कॉलम समूह पर काम करने के लिए विधि के लिए आपको इसे एक फील्ड प्रॉपर्टी असाइन करने की आवश्यकता है।

समस्या यह है कि केंडो यूआई ग्रिड प्रलेखन में कहा गया है कि लॉक कॉलम के साथ ग्रिड को शुरू करने के बाद, कम से कम एक कॉलम हर समय बंद रहना चाहिए।

आपके मामले में, आपके पास दो मुख्य "कॉलम", ए और बी हैं, और केवल ए लॉक है। इसलिए जब आप ए को अनलॉक करने का प्रयास करते हैं, तो यह बंद रहता है।

एक वर्कअराउंड शून्य चौड़ाई के साथ एक और कॉलम जोड़ना है और इसे हर समय लॉक रखना है।

डेमो here देखें।

+0

के रूप में पोस्ट कर रहा हूं आपकी प्रतिक्रिया के लिए धन्यवाद लेकिन मुझे पहले से ही समाधान मिल गया है। –

+1

हाँ मैंने देखा। यह बिल्कुल वही समाधान है। मुझे 2 मिनट देर हो चुकी थी ... – Shai

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