最近使用ExtJS下拉列表框(ComboBox)希望完成一个动态下拉列表的功能,即列表中的数据都通过异步方式查询数据库而来,同时在用户选择了列表中的某个值后,可以从后台正确的获取用户选择项所对应的值。
这就包含了两个步骤:
1:异步方式查询数据库并渲染到ComboBox(下拉列表)中;
2:后台获取前台用户选择的列表项所对应的值;
先来看看怎样使用异步方式查询数据库并渲染到下拉列表框中去。
首先需要指定一个代理,代理的使用是为了屏蔽具体数据来源的不同,即下拉列表框中的内容既可以来自于local(内存),也可以来自于远程(remote,查询数据库等方式)。一个查询远程数据库的代理写法如下所示:
var proxy = newExt.data.HttpProxy({url:"../AjaxServlet?parameter=identityNoTag"});//指定处理Ajax请求的Servlet和参数
该代理的指定了处理请求的Servlet类为AjaxServlet,并且携带了参数parameter。代理创建完毕后需要指定每条记录的解析方式(不知道准确不准确,我是这么理解的),即创建一个Record,一个Record对应着一条记录:
var identityJSON =Ext.data.Record.create([
{name:"parameterName",type:"string",mapping:"parameterName"},//映射列
{name:"parameterValue",type:"string",mapping:"parameterVal