2008年2月5日 星期二

自訂 AutoCompleteExtender







使用 AutoCompleteExtender時,如果要像Google Search 之 tips 效果,要怎麼做呢?

重點是,預設之AutoCompleteExtender,會將所有的 text,全部設定到 textbox 上。

找AutoCompleteExtender 之 AutoCompleteBehavior.js 可以找到下面這一段。

_setText: function(text) { this._timer.set_enabled(false);
this._currentPrefix = text;
var element = this.get_element();
var control = element.control;
// todo: should check for 'derives from' too and should somehow manually cause TB to raise property changed event
if (control && control.set_text)
{
control.set_text(text);
}
else { element.value = text; }
this._hideCompletionList();
},

可以發現,是有機會 override set_text 的。

google 一下後,找到了 solution

function pageLoad() {
AjaxControlToolkit.AutoCompleteBehavior.prototype._setText = function(item) {
var text = item.split(" ")[0];
this.get_element().value = text;
}
}

此會將找到的字串之第一段空白前的文字,塞到 textbox 中。

沒有留言:

Share with Facebook