日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

ext中引用ux_Ext.ux.form.SearchField使用方法

發布時間:2024/9/19 编程问答 44 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ext中引用ux_Ext.ux.form.SearchField使用方法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

這學期一直在做一個管理系統,前臺用到了ExtJs,現在開始總結這一學期的學習心得,首先我們從Ext.ux.form.SearchField開始講,因為這個東西一直困擾我好長時間,直到項目結束前幾天我才解決這個問題。

首先我們先附上Ext.ux.form.SearchField的源代碼:

/*!

* Ext JS Library 3.2.0

* Copyright(c) 2006-2010 Ext JS, Inc.

* licensing@extjs.com

* http://www.extjs.com/license

*/

Ext.ns('Ext.ux.form');

Ext.ux.form.SearchField = Ext.extend(Ext.form.TwinTriggerField, {

initComponent : function(){

Ext.ux.form.SearchField.superclass.initComponent.call(this);

this.on('specialkey', function(f, e){

if(e.getKey() == e.ENTER){

this.onTrigger2Click();

}

}, this);

},

validationEvent:false,

validateOnBlur:false,

trigger1Class:'x-form-clear-trigger',

trigger2Class:'x-form-search-trigger',

hideTrigger1:true,

width:180,

hasSearch : false,

paramName : 'query',

onTrigger1Click : function(){

if(this.hasSearch){

this.el.dom.value = '';

var o = {start: 0};

this.store.baseParams = this.store.baseParams || {};

this.store.baseParams[this.paramName] = '';

// this.store.reload({params:o});

this.store.reload();

this.triggers[0].hide();

this.hasSearch = false;

}

},

onTrigger2Click : function(){

var v = this.getRawValue();

if(v.length < 1){

this.onTrigger1Click();

return;

}

var o = {start: 0};

this.store.baseParams = this.store.baseParams || {};

this.store.baseParams[this.paramName] = v;

// this.store.reload({params:o});

this.store.reload();

this.hasSearch = true;

this.triggers[0].show();

}

});

從源代碼中我們看到我注視了一行:

// this.store.reload({params:o});

這個參數是用于分頁的,我實際的項目中,分頁用到了2個參數,分別是start和limit,但是這里只有start,因此如果reload只傳start會報錯,而且我通過測試發現,reload方法不需要傳遞參數,他它自動會使用原來的分頁參數start和limit。

看到這個搜索框,我們一般可能會想,這個搜索控件是如何給后臺傳遞參數的呢?從源代碼中我們看到有一行

paramName : 'query',

當我們在搜索控件中輸入查詢條件,這個查詢條件會賦值給query,查詢條件就是通過這個參數名為query來傳遞的。我們在后臺可以通過以下方式獲取搜索條件中的文本:

String query=request.getParameter("query");

得到搜索條件以后我們就可以使用這個搜索條件查詢數據庫了。

下面我附上前臺的ExtJs中使用SearchField的代碼。

首先定義工具欄,定義如下:

var toolbar = new Ext.Toolbar( [ {// 創建GridPanel的工具欄組件

text : '新增員工信息',

iconCls : 'add',

handler : addUser

}, {

text : '刪除員工信息',

iconCls : 'remove',

handler : deleteUser

}, {

text : '修改員工信息',

iconCls : 'plugin',

handler : updateUser

}

, '-','查詢:',' ', new Ext.ux.form.SearchField( {

store : userStore,

width : 110

})

]);

然后在grid中使用該工具欄:

var userGrid = new Ext.grid.GridPanel( {// 創建Grid表格組件

applyTo : 'user-grid-div',// 設置表格現實位置

frame : true,// 渲染表格面板

tbar : toolbar,// 設置頂端工具欄

stripeRows : true,// 顯示斑馬線

autoScroll : true,// 當數據查過表格寬度時,顯示滾動條

store : userStore,// 設置表格對應的數據集

viewConfig : {// 自動充滿表格

autoFill : true

},

sm : sm,// 設置表格復選框

cm : cm,// 設置表格的列

bbar : new Ext.PagingToolbar( {

pageSize : 25,

store : userStore,

displayInfo : true,

displayMsg : '顯示第{0}條到{1}條記錄,一共{2}條記錄',

emptyMsg : '沒有記錄'

//,items:['-',new Ext.app.SearchField({store:userStore})]

})

});

搜索控件不一定非要放在toolbar上,這個可以根據個人需要設定。

總結

以上是生活随笔為你收集整理的ext中引用ux_Ext.ux.form.SearchField使用方法的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。