shijing19850510
2009-07-13 20:21
浏览 203
已采纳

ext.app.searchfield 问题

在jsp的程序中,如果想用ext做一个搜索框出来,从网上看了可以自己定制一个ext.app.searchfield组件,然后在表格设置中加入
tbar: [
'检索:',
new Ext.portal.SearchField({
store: users,
width:540
})
],

将它引入,但是在后台如何处理呢?如何实现它的搜索功能呢?麻烦大家帮忙解答一下,如果曾经写过这方面的代码,麻烦您可否将代码发上来学习一下,谢谢了~~ :D
[b]问题补充:[/b]
因为有要求,必须做成那种样式的,所以才想采用Ext.portal.SearchField的形式~~

  • 写回答
  • 好问题 提建议
  • 关注问题
  • 收藏
  • 邀请回答

3条回答 默认 最新

  • zhoujuan520 2009-07-14 00:48
    已采纳

    是不是因为看到那个好看呀?:)

    在2.0+ 的时候这个组件是一个ux组件,是用户扩展的.

    现在3.0中要实现,简直就是太简单了

    [code="js"]
    var store = new Ext.data.Store({
    url: 'getData.action',//查询框会调用这个对象的方法,然后根据这个url来访问服务器获得数据.后台你可以用任何语言都可以.没有限制的.
    reader: new Ext.data.JsonReader({totalProperty: 'totalProperty',root: 'root'},
    [
    {name: 'pid'},
    {name: 'a'},
    {name: 'b'},
    {name: 'c'}

            ])
        });
    

    //-----------------------
    new Ext.form.TwinTriggerField({
    validationEvent: false,
    validateOnBlur: false,
    trigger1Class: 'x-form-clear-trigger',
    trigger2Class: 'x-form-search-trigger',
    hideTrigger1: true,
    width: 180,
    hasSearch: false,
    listeners: {
    'specialkey': function(f, e) {
    if (e.getKey() == e.ENTER) {
    this.onTrigger2Click();
    }
    if (e.getKey() == e.ESC) {
    this.hasSearch = true;
    this.onTrigger1Click();
    }
    }
    },
    onTrigger1Click: function() {
    if (this.hasSearch) {
    this.el.dom.value = '';
    this.triggers[0].hide();
    this.hasSearch = false;
    this.focus();
    }
    },
    onTrigger2Click: function() {
    var field = this.previousSibling().previousSibling().getValue();
    var v = this.getRawValue();
    //其实就是这一句啦.他调用了store的加载方法,具体数据怎么和后台也很简单呀.
    store.reload({
    params: {
    value: v,
    field: field,
    start: 0,
    limit: 20
    }
    });
    this.hasSearch = true;
    this.triggers[0].show();
    this.focus();
    }
    })
    [/code]

    已采纳该答案
    评论
    解决 无用
    打赏 举报
  • iteye_10013 2009-07-13 21:32

    你是要做Grid的搜索功能?
    在toolbar上加一个textfield就ok了.
    然后监听它的keyup事件,得到新的value.
    然后对grid的store执行load操作,传递参数过去.

    评论
    解决 无用
    打赏 举报
  • aolongxue 2009-07-15 00:20

    它会发送一个 名为“query”的param到后台

    评论
    解决 无用
    打赏 举报

相关推荐 更多相似问题