在dojo.ready(dojo 1.7)中填充dojo组合框

时间:2012-05-11 03:00:48

标签: dom combobox dojo

我有一个comboxbox从url商店加载其数据。我的代码如下......我在Firebug中注意到的是,一旦我把焦点放在它上面,Combobox会加载这些信息。我希望在页面加载完成时让Combobox填充。我猜我使用dojo.ready吗?有没有人建议我如何解决这个问题?非常感谢!珍妮

<!DOCTYPE html>
<html >
<head>

    <link rel="stylesheet" type="text/css" href="lib/dojo/dijit/themes/claro/claro.css" />
    <style type="text/css">html, body {
        width: 100%;
        height: 100%;
        margin: 0;
    }</style>
    <script src="lib/dojo/dojo/dojo.js" data-dojo-config="parseOnLoad: true"></script>
    <script>require(["dojo/ready", "dojo/data/ItemFileReadStore", "dijit/form/ComboBox"]); 

</script>

</head>
<body class="claro">
    <label for="user">User: </label>
<div dojoType="dojo.data.ItemFileReadStore" url="test.json" jsId="countryStore"> 
<input dojoType="dijit.form.ComboBox" searchAttr="last_name" store="countryStore" class="selectionNav tableData" value="" name="last_name" id="test.json" /> 
</body>
</html>

1 个答案:

答案 0 :(得分:1)

你的require函数看起来应该是这样的

require(["dojo/ready", "dijit/registry", "dojo/data/ItemFileReadStore"],function(dom,reg,store){
    var combo = dijit.byId("test.json");
    var storeDate = new store({url:"path/to/file.json"});
    try{
        combo.store(storeData);
    }catch(e){
        combo.set("store",storeData)
    }
});

try catch语句是因为我不记得哪一个是正确的