我在App.html中有这个
<div data-dojo-type="dojox.mobile.Pane">
<input id="codice_cliente" type="text" data-dojo-type="dojox.mobile.ComboBox"
data-dojo-props='store:popola_codice_cliente()' placeHolder="Codice cliente" >
</div>
这在我的App.js
中var codici_clienti;//build from adapter
function popola_codice_cliente(){
return new dojo.store.Memory({ idProperty: "name", data:[{ name: codici_clienti[0].CDCLI }, { name: codici_clienti[1].CDCLI }, { name: codici_clienti[2].CDCLI }, { name: codici_clienti[3].CDCLI }, { name: codici_clienti[4].CDCLI }, { name: codici_clienti[5].CDCLI }, { name: codici_clienti[6].CDCLI }, ] });
return new dojo.store.Memory({ idProperty: "name", data:codici_clienti_data});
}
IT工作。但是,如果我想动态构建这个数组,dojox.mobile.ComboBox不起作用,它不会返回任何内容。
function popola_codice_cliente(){
var codici_clienti_data;
if (result.invocationResult.resultSet.length>0) {
codici_clienti=result.invocationResult.resultSet;
codici_clienti_data="[ ";
for (var i=0;i<codici_clienti.length;i++){
codici_clienti_data+="{ name: codici_clienti["+i+"].CDCLI }, ";
}
codici_clienti_data+="] ";
}
return new dojo.store.Memory({ idProperty: "name", data:codici_clienti_data});
}
如果我从浏览器的控制台获取vAR codici_clienti_data,则返回:
"[ { name: codici_clienti[0].CDCLI }, { name: codici_clienti[1].CDCLI }, { name: codici_clienti[2].CDCLI }, { name: codici_clienti[3].CDCLI }, { name: codici_clienti[4].CDCLI }, { name: codici_clienti[5].CDCLI }, { name: codici_clienti[6].CDCLI }, { name: codici_clienti[7].CDCLI }, { name: codici_clienti[8].CDCLI }, { name: codici_clienti[9].CDCLI }, { name: codici_clienti[10].CDCLI }, { name: codici_clienti[11].CDCLI }, { name: codici_clienti[12].CDCLI }, { name: codici_clienti[13].CDCLI }, { name: codici_clienti[14].CDCLI }, { name: codici_clienti[15].CDCLI }, { name: codici_clienti[16].CDCLI }, { name: codici_clienti[17].CDCLI }, { name: codici_clienti[18].CDCLI }, { name: codici_clienti[19].CDCLI }, { name: codici_clienti[20].CDCLI }, { name: codici_clienti[21].CDCLI }, { name: codici_clienti[22].CDCLI }, { name: codici_clienti[23].CDCLI }, { name: codici_clienti[24].CDCLI }, { name: codici_clienti[25].CDCLI }, { name: codici_clienti[26].CDCLI }, { name: codici_clienti[27].CDCLI }, { name: codici_clienti[28].CDCLI }, { name: codici_clienti[29].CDCLI }, ] "
是否有替代方法可以填充组合框(但是,从数据库中获取数据)?
答案 0 :(得分:1)
Solved.eval()是解决方案!
if (result.invocationResult.resultSet.length>0) {
var codici_clienti=result.invocationResult.resultSet;
var mydata="[ ";
for (var i=0;i<codici_clienti.length;i++){
mydata+="{ name: codici_clienti["+i+"].CDCLI }, ";
}
var lungh = mydata.length;
mydata = mydata.substring(0,lungh-1); // tolgo l'ultimo carattere della stringa,ovvero la virgola
mydata+="] ";
codici_clienti_data = new Array();
codici_clienti_data= eval (mydata);