मैं इस के लिए एक समाधान के लिए देख रहा है और इस प्रश्न में आए, लेकिन कोई समस्या का समाधान कहीं भी एक विकलांग चेकबॉक्स दिखाने के बजाय करने के लिए किया गया था अन्य उत्तर में शामिल के रूप में कोई चेकबॉक्स नहीं। यह एक तरह से शामिल था, लेकिन यहाँ मैं (4.1.0 के लिए) क्या किया है:
मैंने पाया कि ExtJS \ उदाहरण \ UX \ सीएसएस \ CheckHeader.css Ext.ux.CheckColumn
द्वारा किया जाता है फ़ाइल जो ऐसा नहीं करता एक अक्षम वर्ग है, इसलिए मैं को मानक चेकबॉक्स स्टाइल ext-all.css (जिसमें एक अक्षम चेकबॉक्स कक्षा शामिल है) में निहित मानक चेकबॉक्स स्टाइल की तरह अधिक संशोधित करना था।
मुझे Ext.ux.CheckColumn
को अक्षम चेकबॉक्स से निकालकर रोकने के लिए Ext.ux.CheckColumn
का विस्तार करना पड़ा।
अंत में, मुझे अपने तर्क के अनुसार विकलांग कक्षा लागू करने के लिए अपना स्वयं का प्रस्तुतकर्ता प्रदान करना पड़ा।
कोड निम्नानुसार है।
संशोधित CheckHeader.css:
.x-grid-cell-checkcolumn .x-grid-cell-inner {
padding-top: 4px;
padding-bottom: 2px;
line-height: 14px;
}
.x-grid-with-row-lines .x-grid-cell-checkcolumn .x-grid-cell-inner {
padding-top: 3px;
}
.x-grid-checkheader {
width: 13px;
height: 13px;
background-image: url('../images/checkbox.gif');
background-repeat: no-repeat;
background-color: transparent;
overflow: hidden;
padding: 0;
border: 0;
display: block;
margin: auto;
}
.x-grid-checkheader-checked {
background-position: 0 -13px;
}
.x-grid-checkheader-disabled {
background-position: -39px 0;
}
.x-grid-checkheader-checked-disabled {
background-position: -39px -13px;
}
.x-grid-checkheader-editor .x-form-cb-wrap {
text-align: center;
}
इस छवि को अंक जो आम तौर पर कम से ExtJS 4.1.0 के साथ जहाजों ऊपर पृष्ठभूमि छवि url: ExtJS \ संसाधन \ विषयों \ छवियों \ डिफ़ॉल्ट \ प्रपत्र \ checkbox.gif।
बढ़ाया Ext.ux.CheckColumn वर्ग ताकि घटनाओं विकलांग checkcolumns से निकाल दिया नहीं किया जाएगा:
Ext.define('MyApp.ux.DisableCheckColumn', {
extend: 'Ext.ux.CheckColumn',
alias: 'widget.disablecheckcolumn',
/**
* Only process events for checkboxes that do not have a "disabled" class
*/
processEvent: function(type, view, cell, recordIndex, cellIndex, e) {
var enabled = Ext.query('[class*=disabled]', cell).length == 0,
me = this;
if (enabled) {
me.callParent(arguments);
}
},
});
कस्टम दाता के साथ कार्यान्वयन अपने ही तर्क के अनुसार विकलांग वर्ग लागू करने के लिए:
column = {
xtype: 'disablecheckcolumn',
text: myText,
dataIndex: myDataIndex,
renderer: function(value, meta, record) {
var cssPrefix = Ext.baseCSSPrefix,
cls = [cssPrefix + 'grid-checkheader'],
disabled = // logic to disable checkbox e.g.: !can_be_checked
if (value && disabled) {
cls.push(cssPrefix + 'grid-checkheader-checked-disabled');
} else if (value) {
cls.push(cssPrefix + 'grid-checkheader-checked');
} else if (disabled) {
cls.push(cssPrefix + 'grid-checkheader-disabled');
}
return '<div class="' + cls.join(' ') + '"> </div>';
}
};
लेकिन प्रस्तुतकर्ता पहले ही चेककॉल में परिभाषित है। मैं कोड के इस टुकड़े को खोना या दोहराना नहीं चाहता हूं, इसे extjs के नए संस्करणों में संशोधित किया जा सकता है। http://docs.sencha.com/ext-js/4-0/source/CheckColumn.html#Ext-ux- चेक कॉलम – Nameless
मैंने इसे संपादित कर लिया है। समाधान का प्रयास करें। – Aniketos
+1 - फ़ील्ड में 'सत्य' या 'झूठी' प्राप्त किए बिना चेकबॉक्स को सुरक्षित रूप से 'प्रस्तुत' करने का एक तरीका ढूंढ रहा था। धन्यवाद। – horace