天天看點

ExtJs 修改元件值方式

我在做一個下拉清單的級聯

<code>Ext.getCmp(</code><code>'_s_combobox_peSite_siteName'</code><code>).on(</code><code>'change'</code><code>,</code><code>function</code><code>(e,select){</code>

<code>//為下一級下拉框加載新值</code>

<code>//參數說明:select:peSite.Id   url:需加載的下接框        target:資料存放位置</code>

<code>//自定義方法getList(select,url,target)</code>

<code>//alert('e:' +e + ' select: ' + select);</code>

<code>getList(select,</code><code>'/entity/teaching/electiveManage_ajaxGetTraining.action?siteId='</code><code>+select,</code><code>'_s_combobox_peTraining_trainingName'</code><code>,</code><code>'學期'</code><code>);</code>

<code>});</code>

<code>function</code> <code>getList(id,url,target,title){</code>

<code>Ext.Ajax.request({</code>

<code>url:url,</code>

<code>method:</code><code>'GET'</code><code>,</code>

<code>disableCaching:</code><code>true</code><code>,</code>

<code>callback:</code><code>function</code><code>(option,success,response){</code>

<code>if</code><code>(success){</code>

<code>_s_combobox_peTraining_trainingName = eval(response.responseText);</code>

<code>}</code>

因為從服務單傳過來response.responseText的内容就是下面所示的一個拼接字元串

<code>_s_combobox_peTraining_trainingName = </code><code>new</code> <code>Ext.form.ComboBox({ applyTo:</code><code>'_s_combobox_peTraining_trainingName'</code><code>, width: </code><code>150</code><code>, store: </code><code>new</code> <code>Ext.data.SimpleStore({ fields: [</code><code>'id'</code><code>, </code><code>'name'</code><code>], data : [[</code><code>'4af8dec33e9d07a7013e9d0a57bc0004'</code><code>,</code><code>'2013第一學期'</code><code>],[</code><code>'4af8dec33e9d07a7013e9d0b5fbc0005'</code><code>,</code><code>'2013第二學期'</code><code>]] }), valueField: </code><code>'id'</code><code>, displayField:</code><code>'name'</code><code>, selectOnFocus:</code><code>true</code><code>, allowBlank: </code><code>true</code><code>, typeAhead:</code><code>false</code><code>, fieldLabel: </code><code>'學期'</code><code>, name:</code><code>'_s_combobox_peTraining_trainingName'</code><code>, id:</code><code>'_s_combobox_peTraining_trainingName'</code><code>, triggerAction: </code><code>'all'</code><code>, editable: </code><code>true</code><code>, mode:</code><code>'local'</code><code>, emptyText:</code><code>''</code><code>, blankText:</code><code>''</code><code>});</code>

如果直接寫成:_s_combobox_peTraining_trainingName =response.responseText

浏覽器會把response.responseText目前一個字元串來處理,這樣頁面就無法顯示,

可以通過js裡面的alert(typeof(response.responseText))方法來檢視它的類型(String),但是這裡我要的是一個對象,所在我用js裡面的eval(response.responseText)方法将它轉換成了object類型,alert(typeof(response.responseText))彈出來的是object類型,這樣頁面就能顯示了

産明

<code>這裡主要說明兩點:</code>

<code>1、通過js裡面的eval(String)方法将字元串轉換成object對象</code>

<code>2、通過為同一個object對象重新指派來改變他原來的參數值</code>

本文轉自  wbb827  51CTO部落格,原文連結:http://blog.51cto.com/wbb827/1201871

繼續閱讀