1

何が問題なのかわかりませんが、エラー コンソールに「_21.store.fetch は関数ではありません」と表示されます。コンボボックスに値が入力されません。Memory と ItemFileWriteStore の両方を試しましたが、どちらも機能しません! どうしたの?私はdojo 1.6.1 btwを使用しています。コードは次のとおりです。

<html>
<head>
<script type="text/javascript" src="dojo/dojo.js.uncompressed.js"></script>
<link rel="stylesheet" type="text/css" href="dojo/resources/dojo.css"></style>
<link rel="stylesheet" type="text/css" href="dijit/themes/claro/claro.css"></style>
<script type="text/javascript">
    dojo.require("dijit.form.ComboBox");
    dojo.require("dojo.store.Memory");
    dojo.require("dojo.data.ItemFileWriteStore");
    dojo.require("dojo.data.ItemFileReadStore");
</script>

<script type="text/javascript">
dojo.ready(function(){
    var rateStore, rate;

    rateStore = new dojo.store.Memory({
        data: [
            {id:1, name:"1 X"},
            {id:2, name:"2 X"},
            {id:4, name:"4 X"},
            {id:6, name:"6 X"},
            {id:8, name:"8 X"},
            {id:10, name:"10 X"}
        ]
    });
    /*
    rateStore =  new dojo.data.ItemFileWriteStore({
        data: {
            items:[
                {id:1, name:"1 X"},
                {id:2, name:"2 X"},
                {id:4, name:"4 X"},
                {id:6, name:"6 X"},
                {id:8, name:"8 X"},
                {id:10, name:"10 X"}
            ]
        }
    });
    */
    rate = new dijit.form.ComboBox({
        id: "rate",
        name: "rate",
        store: rateStore,
        searchAttr: name,
        style: "width:50px"
    }, dojo.byId("rate"));
    rate.startup();
});
</script>
</head>
<body class="claro">
<div id="rate"></div>
</body>
</html>
4

2 に答える 2

1

1.6.1 では、ComboBox は store API をサポートしていません。そのため、ItemFileReadStore または ItemFileWriteStore を使用する必要があります。

rateStore =  new dojo.data.ItemFileWriteStore({
    data: {
        identifier: 'id',
        label: 'name',
        items:[
            {id:1, name:"1 X"},
            {id:2, name:"2 X"},
            {id:4, name:"4 X"},
            {id:6, name:"6 X"},
            {id:8, name:"8 X"},
            {id:10, name:"10 X"}
        ]
    }
});

rate = new dijit.form.ComboBox({
    id: "rate",
    name: "rate",
    store: rateStore,
    style: "width:250px"
}, dojo.byId("rate"));
rate.startup();
于 2012-04-30T10:24:34.283 に答える
0

これを試して:

rate = new dijit.form.ComboBox({
    id: "rate",
    name: "rate",
    store: rateStore,
    searchAttr: "name",
    style: "width:50px"
}, "rate").startup();
于 2012-04-30T06:02:02.117 に答える