私はバックエンドコンポーネントにアクセスできませんが、あなたがリンクされ、デモがフロントエンドのコードが含まれており、そこでハックすることができますように見えます。このコントロールは、クライアント側とクライアント側の両方である可能性があります。クライアントサイドのハックは複雑で非公開のAPI(_onInputChange
)がありますが、クライアントサーバの場合(おそらくあなたのケースです)、client side of RadComboBox ObjectのドキュメントにはrequestItems
というメッセージが記載されていますので、おそらくこれはかなり安全です:
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);
}
};
残念ながら、私はJSでアクセントに対処するための組み込みの方法を知りませんが、あなたがここにも簡単な何かをハックすることができます
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('');
};
だから今、あなたのようなもので、それを組み合わせることができますthis:
// 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);
たり、ページ上のすべてのコンボボックスを変更したい場合は、あなたが同じトリックを使ってプロトタイプを変更することができます。
hackRadComboBoxFilter(Telerik.Web.UI.RadComboBox.prototype, removeAccents)