使用ListSearchExtender时,发现输入中文没有显示,分析了一上ListSearchBehavior.js,发现_isNormalChar函数上有一个e.charCode>6000,而汉字的编码范围是19968~40869,这个函数把如果是汉字,就返回false,即不提示显示,将代码改这如下即可正常显示汉字了:
_isNormalChar : function(e) {
/// <summary>
/// Returns true if the specified charCode is a key rather than a normal (displayable) character
/// </summary>
/// <param name="e" type="Sys.UI.DomEvent">
/// Event info
/// </param>
/// <returns type="Boolean" />
// Walking through Sys.UI.Keys won't work -- Ampersand is code 38 which matches
if (Sys.Browser.agent == Sys.Browser.Firefox && e.rawEvent.keyCode) {
return false;
}
if (Sys.Browser.agent == Sys.Browser.Opera && e.rawEvent.which == 0) {
return false;
}
//if (e.charCode && (e.charCode < Sys.UI.Key.space || e.charCode > 6000)) {//修改前的
if (e.charCode && (e.charCode < Sys.UI.Key.space)) {//修改后的
return false;
}
return true;
},