+ -
当前位置:首页 → 问答吧 → 关于ext中的combobox的两个问题。

关于ext中的combobox的两个问题。

时间:2010-09-28

来源:互联网

第一个问题是想问一下,如何数据载入以后,将第一行的数据自动填充在combobox中。
现在只有选择下拉以后才有数据。
var store1=new Ext.data.Store({
  url: '../Ajax/CorpAndDeptAjax.aspx?action=corp',
  reader: new Ext.data.XmlReader({
  record: 'item'
  }, [
  'ID','Name'
  ]),
  autoLoad: true
  });
  var corp=new Ext.form.ComboBox({
   
  valueField:'ID',
  hiddenName:'ID',
  displayField:'Name', 
  typeAhead: true,
  lazyRender:true,
  mode: 'remote',
  triggerAction: 'all',
  store:store1
  });

第二个问题是我在页面有一个select的html控件
然后用
var year = new Ext.form.ComboBox({
  typeAhead: true,
  triggerAction: 'all',
  transform:'year',
  width:80,
  forceSelection:true
  });
进行读取,如果在写面上将option写死了就会读过来。
但是我如果用jquery先给这个select动态赋值,然后再让ext读,数据就读不出来了。
想问一下如何解决。谢谢。一定结分。

作者: youyuan1980   发布时间: 2010-09-28

JScript code
var corp=new Ext.form.ComboBox({
   
  valueField:'ID',
  hiddenName:'ID',
  displayField:'Name', 
  typeAhead: true,
  lazyRender:true,
  mode: 'remote',
  triggerAction: 'all',
  store:store1,
  value: "你要选择的value",
  listeners: {
       render: function (cb) {
          cb.setValue("选择值value");
       }
  }
  });

/*第二个问题应该是数据同步问题。
你的是异步,在数据还没有加载的时候。你的combox就取到页面上
的html的select,这个时候select没有用ajax加载完option
导致你取到的是空的,而combox已经渲染完了。
所以你要重新渲染组件,或是用同步。也就是保证select先加载数据完了后
才显示combox*/

作者: IBM_hoojo   发布时间: 2010-09-29