English 中文(简体)
加载远程extJS组合不工作
原标题:
  • 时间:2009-05-17 09:57:46
  •  标签:

这是我第一次使用extJS的舞会上,经过几个小时的努力,有些事情是工作好的,除了我有组合列表,我可以t过滤下来不到2000件在边缘的情况下,所以我想通过远程页面的列表,但我一定是做错了什么。

我的数据存储和组合看起来如下:

var remoteStore = new Ext.data.JsonStore({
        //autoLoad    : true,
        url         :  addition-lists.aspx ,
        fields      : [{name:  extension_id }, {name:  extension }],
        root        :  extensionList ,
        id          :  remoteStore                
    });
.
.
                        xtype         :  combo ,
                        fieldLabel    :  Remote ,
                        name          :  remote ,
                        displayField  :  extension ,
                        valueField    :  extension_id ,
                        mode          :  remote , 
                        //pageSize      : 20,
                        triggerAction :  query ,  
                        typeAhead     : true,                    
                        store         : remoteStore,
                        anchor        :  95% 

组合加载本地工作,但当我切换到远程仍是空白。

我的ASP。网络页面返回JSON是这样的:

protected void Page_Load(object sender, EventArgs e)
{
    Response.Clear();
    Response.Write(GetRemote());
}
最佳回答

在远程存储组合违约minChars产权到4,所以查询后才发送输入4个字符。设置minChars几乎给所需的行为。

我说几乎因为即使项目在当前页面寻求通过自动完成,仍然发送一个新的服务器查询,默认选择第一项在新的页面。

问题回答

上面的方法你配置你的商店,结果从你的ASP脚本应该阅读这样的:

{"extensionList": [
  {"extension_id": 1, "extension": "js"},
  {"extension_id": 2, "extension": "aspx"}
]}

看来并不这样,如果远程存储不会找到任何东西。

你可以参考这个问题ExtJS在IE下拉列表框的问题

几件事情。首先,当这样做:

remoteStore。loadData (< % = GetRemote () % >);

实际上你不从你的javascript进行远程调用。你回应的结果直接调用GetRemote服务器函数在呈现时的页面。可能不是你要表达什么?如果GetRemote写出你的组合数据(它正常工作),那么你应该能够使用一个组合设置本地数据。如果真正的意图是远程调用,那么您需要删除通过代理服务器标签和数据加载url所示的几个例子,Ext。

另一件事是,Page_Load代码并展示你是怎么加载,格式化或返回数据。我建议查看标签实际上是源和验证与您期望的数据所取代。如果/当你切换到一个真正的远程调用来加载数据,那么你可以使用Firebug检查你的XHR调用和验证数据。

必须设置一个代理,即集

代理:新ScriptTagProxy

属性加载远程存储。看看例子具体语法。

编辑:请无视我之前注意因为你使用JsonStore捷径。

尝试应用所有这些属性的组合:

   typeAhead: true,
   typeAheadDelay: 500,
   triggerAction:  all ,
   selectOnFocus:true,

And please do not do server-side prefetch of records (using loadData). It hurts internal filter very much, so that you stick with filtered records from different prefetches. On the other hand, if you do prefetch all records on the server-side, why do you need then remote access for your combo anymore?!





相关问题
热门标签