Tôi không có quyền truy cập vào các thành phần phụ trợ nhưng bản demo bạn liên kết chứa mã frontend và có vẻ như bạn có thể hack trong đó. Có vẻ như điều khiển này chỉ có thể là cả máy khách-máy chủ và phía máy khách. Đối với các hack chỉ phía máy khách, có vẻ phức tạp và invloves API không công khai (_onInputChange
) nhưng đối với trường hợp máy chủ-khách (có thể là trường hợp của bạn), tài liệu trên client side of RadComboBox Object đề cập đến phương thức requestItems
để hack nó có lẽ là tương lai hợp lý an toàn:
var hackRadComboBoxFilter = function (combobox, filterProcessingFunction) {
var oldRequestItems = combobox.requestItems;
combobox.requestItems = function() {
var args = Array.prototype.slice.call(arguments);
// requestItems has several arguments but the text seems to be the
// first one, so let's modify it and call the original method
var origFilter = args[0];
args[0] = filterProcessingFunction(origFilter);
oldRequestItems.apply(this, args);
}
};
Đáng tiếc là tôi không biết một cách built-in để đối phó với các điểm nhấn trong JS nhưng bạn có thể hack một cái gì đó đơn giản ở đây cũng như:
var accents = 'ÀÁÂÃÄÅàáâãäåÒÓÔÕÕÖØòóôõöøÈÉÊËèéêëðÇçÐÌÍÎÏìíîïÙÚÛÜùúûüÑñŠšŸÿýŽž';
var mappedAccents = "AAAAAAaaaaaaOOOOOOOooooooEEEEeeeeeCcDIIIIiiiiUUUUuuuuNnSsYyyZz";
var removeAccents = function (origStr) {
var components = [];
var len = origStr.length;
var afterLastAccent = 0;
for (var i = 0; i < len; i++) {
var mapPos = accents.indexOf(origStr[i]);
if (mapPos != -1) {
components.push(origStr.substr(afterLastAccent, i - afterLastAccent) + mappedAccents[mapPos]);
afterLastAccent = i + 1;
}
}
if (afterLastAccent < len)
components.push(origStr.substr(afterLastAccent, len - afterLastAccent));
return components.join('');
};
vì vậy, bây giờ bạn có thể kết hợp nó trong một cái gì đó như điều này:
// In real app you probably want something like this
// var targetComboBox = $find("<%= RadComboBox1.ClientID %>");
// but for test let's just hack first combobox on the page
var targetComboBox = Telerik.Web.UI.RadComboBox.ComboBoxes[0];
hackRadComboBoxFilter(targetComboBox, removeAccents);
hoặc nếu bạn muốn thay đổi tất cả các comboboxes trên trang web, bạn có thể thay đổi mẫu bằng cách sử dụng thủ thuật tương tự:
hackRadComboBoxFilter(Telerik.Web.UI.RadComboBox.prototype, removeAccents)