Servlets ExtJS使用不同参数在按钮单击事件上重新加载存储

Servlets ExtJS使用不同参数在按钮单击事件上重新加载存储,servlets,extjs4,Servlets,Extjs4,我是ExtJs新手,现在正在使用ExtJs4 现在,如下图所示,有一个名为keywords的文本字段,我想做的是当我点击按钮时,它会将textfield的数据传递给servlet,并在网格中显示结果记录 现在我不知道怎么做。我收到来自servlet的JSON数据响应,但不知道如何重新加载存储和刷新网格 下面是我的商店和网格的代码 您可以使用: { xtype: 'button', text: 'Search', handler: function() {

我是ExtJs新手,现在正在使用ExtJs4

现在,如下图所示,有一个名为keywords的文本字段,我想做的是当我点击按钮时,它会将
textfield
的数据传递给servlet,并在
网格中显示结果记录

现在我不知道怎么做。我收到来自servlet的JSON数据响应,但不知道如何重新加载存储和刷新网格

下面是我的商店和网格的代码

您可以使用:

{
    xtype: 'button',
    text: 'Search',
    handler: function() {
        store.clearFilter(); //clear previous search value
        var searchValue = Ext.getCmp("textFieldId").getValue(); //get new value 
        store.load().filter('jsonGridFielName', searchValue); //load filtered data
    }
}
对于多个
文本字段
搜索:

//FILTERS
var searchValue1 = Ext.getCmp("textFieldId1").getValue(); //value1
var searchValue2 = Ext.getCmp("textFieldId2").getValue(); //value2
var noValue = "0000xxxx"; //no Value, for empty field, use value that you are sure it is not going to be searched!!!
var clear = store.clearFilter(); //shortcut

if (!searchValue1 && !searchValue2) {
    clear;
    store.load().filter("jsonGridFielName1", noValue);
} else if (searchValue1) {
    clear;
    store.load().filter('jsonGridFielName1', searchValue1);
    //...else if(searchValue n...)...
} else {
    clear;
    store.load().filter('jsonGridFielName2', searchValue2);
}
ezdigrid.js
demo.html
MyServlet

在您的
型号中使用
extraParams

extraParams: {
    keywords: 'your-value'
}
将以下代码放入按钮单击处理程序中

gridDataStore.proxy.extraParams.keywords = 'new value';
gridDataStore.load();

它很好,但现在的问题是我想根据用户需求为单个字段设置过滤器。在我的示例中,我的字段是(关键字、mrn、docid、fname)。我想在每个字段上设置过滤器,并在html中为它们添加文本字段。。所以请你也给我提个建议..嘿!我猜'jsonGridFieldName1'和'jsonGridFieldName2'将是参数名,我尝试在servlet中获取它。我也不知道如何使用这些字段创建商店。。。。。如果你这么说,那么我会在这里发布我的完整代码,这样你可以帮我更多的忙..jsonGridFieldName将是gridpanel columns dataIndex dataIndex:“name”,或者存储字段名,字段:[name:“name…”如果不使用映射,它们总是一样的。好吧,现在我知道了,但是我的过滤器字段不是我的网格的一部分,所以如何做到这一点,plzz chk我发布的答案中的代码..它不起作用…我想做的是,,,在按钮的点击事件中,textfield中的值应该传递给servlet,然后servlet将执行查询并返回结果以存储nd刷新网格但我正在寻找解决这个问题的方法…因为我正在努力解决它,但没有得到解决方案…所以请在查看我的答案后给我一些建议
//handler for button click event
fbar: [{
    xtype: 'button',
    text: 'Search',
    handler: function() {
        var value = Ext.getCmp('_keyword').getValue(); //_keyword is textField
        gridDataStore.load().filter('keywords', value);
    }
}]
keyword = request.getParameter("keywords");

//code for quesry processing
extraParams: {
    keywords: 'your-value'
}
gridDataStore.proxy.extraParams.keywords = 'new value';
gridDataStore.load();