データビューに関して検索フィールドを配置しようとしています。データビューの上部には、テキストフィールドで構成されるツールバーがあります。フィールドにテキストを入力したら、検索機能を呼び出します。今のところ、私はリスナーをテキストフィールドにつかんでいますが、ユーザーがテキストフィールドに何かを入力し始めた直後にリスナーが呼び出されます。
しかし、ユーザーがテキストフィールドに少なくとも3文字を入力した場合にのみ検索機能を開始しようとしていますが、どうすればよいですか?
以下のコード
意見
var DownloadsPanel = {
xtype : 'panel',
border : false,
title : LANG.BTDOWNLOADS,
items : [{
xtype : 'toolbar',
border : true,
baseCls : 'subMenu',
cls : 'effect1',
dock : 'top',
height : 25,
items : [{
xtype : 'textfield',
name : 'SearchDownload',
itemId : 'SearchDownload',
enableKeyEvents : true,
fieldLabel : LANG.DOWNLOADSF3,
allowBlank : true,
minLength : 3
}],
{
xtype : 'dataview',
border : false,
cls : 'catalogue',
autoScroll : true,
emptyText : 'No links to display',
selModel : {
deselectOnContainerClick : false
},
store : DownloadsStore,
overItemCls : 'courseView-over',
itemSelector : 'div.x-item',
tpl : DownloadsTpl,
id : 'cataloguedownloads'
}]
コントローラ:
init : function() {
this.control({
// reference to the text field in the view
'#SearchDownload' :{
change: this.SearchDownloads
}
});
SearchDownloads : function(){
console.log('Search functionality')
}
更新1:次のコードを使用して3文字を入力した後、リスナーを取得できました。
コントローラ
'#SearchDownload' :{
keyup : this.handleonChange,
},
handleonChange : function(textfield, e, eOpts){
if(textfield.getValue().length > 3){
console.log('Three');
}
}
データビューのストアで検索を実行する方法に関するガイダンスまたは例をいただければ幸いです。