2013-10-30 18 views
5

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

उत्तर

11

हां, आप ग्रिड पर चयनित पंक्तियों को बदलने में अक्षम करने के लिए beforeSelectionChange से false वापस कर सकते हैं।

$scope.option = { 
    enableRowSelection: true, 
}; 
$scope.gridOptions = { 
    data: 'myData', 
    beforeSelectionChange: function() { 
     return $scope.option.enableRowSelection; 
    } 
    //, ... 
}; 

HTML:

<button ng-click="option.enableRowSelection=false">Freeze Selection</button> 
<button ng-click="option.enableRowSelection=true">Unfreeze Selection</button> 
<div class="gridStyle" ng-grid="gridOptions"></div> 

उदाहरण कोड: http://plnkr.co/edit/PbhPzv?p=preview

यह भी देखें: https://github.com/angular-ui/ng-grid/wiki/Configuration-Options

+0

यह काम करता है, लेकिन अब मुझे एहसास हुआ कि मुझे कुछ इनपुट बॉक्स को div से बाहर ले जाने की आवश्यकता है जहां ग्रिड बनाया गया है, इसलिए वे लॉक नहीं हैं, समस्या यह नहीं है कि मुझे लगता है कि उनके पास ग्रिड के दायरे तक पहुंच है, है दायरे को पार करना संभव है? संपादन बटन एक संपादन बटन दबाकर, वर्तमान चयनित पंक्ति को संपादित करने में सक्षम है। – Tim

+1

हां, ग्रिड स्कोप ढूंढना और इसे किसी अन्य फ़ंक्शन पर पास करना संभव है और फिर '$ gridScope.apply' पर कॉल करें, लेकिन इसके बजाय gridOptions.data को संपादित करना आसान हो सकता है। डेटा में परिवर्तन (ऊपर दिए गए उदाहरण में 'myData') आमतौर पर ग्रिड में स्वचालित रूप से दिखाई देते हैं। – user508994

0

यह कोणीय 2.3 में काम करता है:

constructor() { 
    this.gridOptions = <GridOptions>{}; 
    this.gridOptions.suppressCellSelection = true; 
    } 
संबंधित मुद्दे