Ext 利用combo進行模糊搜索
//獲得combo的內容 store start
var ComboStore = new Ext.data.Store({
proxy: new Ext.data.HttpProxy({ url: 'ASPX/InfoFacility.aspx?action=action' }),
reader: new Ext.data.JsonReader
({ root: 'root',totalProperty: 'totalProperty' },// totalProperty分頁
[{ name: 'action_id' }, { name: 'action_desc'},{name: 'action_no'}])
});
//store end
// XTemplate 顯示combo行記錄
var resultTpl = new Ext.XTemplate(
'<tpl for="."><div class="search-item">',
'<h3><span>{action_no}</span>{action_desc}</h3>',
'</div></tpl>'
);
var cm = new Ext.grid.ColumnModel(
{
header: '動作描述',
dataIndex: 'action_desc',
editor: new Ext.grid.GridEditor(new Ext.form.ComboBox({//插入grid的combo
store: ComboStore,//數據源
emptyText: '請選擇',
mode: 'remote',//遠程加載
tpl: resultTpl,//combo面板顯示的內容引用XTemplate
width: 230,
minListWidth:230,//剛好適合分頁寬度
pageSize:30,//分頁數目
minChars:1,//模糊查詢最關鍵的一個屬性,當combo可以編輯的狀態下,combo的lenth有多少就觸發事件,相當于ds.reload,重新加載數據源,目前為寫一個字就重新加載一次 默認為4
itemSelector: 'div.search-item',//模板的div
triggerAction: 'all',
valueField: 'action_id',
displayField: 'action_desc'
//readOnly: true
}))
}
]);
當設置了minChars為1的時候 就會想ds中的url發送參數query
Net中用這個來接收
string query = Request.Form.Get("query");
這個query就是我們要進行模糊查詢的內容
由于上面也用到了分頁 所以 我們同時要接收
string start = Request.Form.Get("start");
string limit = Request.Form.Get("limit");
就3個參數query, start, limit
以下為sql語句
string strsql = "select t.action_id,t.action_desc,t.action_no from base_action t where flag=0 and t.action_desc like '"+query+"%'";
然后返回正常的ds格式的json就能夠在前臺顯示模糊查詢的結果了