dojox enhancedGrid插件分页不起作用

时间:2013-11-05 10:44:55

标签: javascript dojo pagination dojox.grid

搜索网页后没有任何成功,我现在请求你的帮助。

我已经编写了一个dojox EnhancedGrid并且希望在Pagination-plugin但是当我调用网格时我得到了这个错误: - [11:16:33.236]错误:需要插件分页。

如果我删除分页,它再次正常工作。 css文件也正确加载。我们使用dojo 1.9

我不认为我想念任何东西,但看看:

require([
    "dojo/dom-style", 
    "dijit/form/CheckBox",
    "dojo/dom",
    "dojo/on",
    "dojo/_base/array",
    "dojox/grid/DataGrid",
    "dojox/grid/EnhancedGrid",
    "dojox/grid/enhanced/plugins/IndirectSelection",
    "dojox/grid/enhanced/plugins/Pagination",
    "dojox/grid/enhanced/plugins/exporter/CSVWriter",
    "dojo/data/ItemFileReadStore",
    "dojo/data/ObjectStore",
    "dojo/store/Memory",
    "dojo/dom-construct",
    "dijit/registry",
    "dojo/json",
    "dojo/dom-style",
    "dojo/domReady!"], 
    function(
    domStyle,
    checkbox,
    dom,
    on,
    array,
    DataGrid,
    EnhancedGrid,
    IndirectSelection,
    Pagination,
    CSVWriter,
    ItemFileReadStore,
    ObjectStore,
    Memory,
    domConstruct,
    registry,
    domStyle,
    JSON){
    var ErgebnisPane;
    var selectedMessPunkte = [];
    var MPStore;

    if (idResults.length) {
        dojo.style("DefaultContentPane",'height','180px');
        dojo.style("DefaultContentPane",'width','200px');

        dojo.style(dojo.byId("DefaultTitlePane"), "display", "block");

            array.forEach(idResults, function(list){
                selectedMessPunkte.push({
                    ident: list.feature.attributes.OBJECTID,
                    numbez: list.feature.attributes.NUMBEZ,
                    pnr: list.feature.attributes.PNR,
                    r: list.feature.attributes.R,
                    h: list.feature.attributes.H,
                    hoehe: list.feature.attributes.HÖHE,
                    vma: list.feature.attributes.VMA,
                    geo: list
                });
        }); 

        var dataItems = {
                 identifier: 'ident',
                 items:selectedMessPunkte
                };
        //Datastore füllen
        var store = new Memory({data:dataItems});
        MPStore = new ObjectStore({objectStore: store});

        //Grid Layout erstellen
        var layout = [
            {name:"ID", field: "ident"},
            {name:"Numerierungsbezirk", field: "numbez"},
            {name:"Punktnummer", field: "pnr"},
            {name:"Rechtswert", field: "r"},
            {name:"Hochwert", field: "h"},
            {name:"Hoehe", field: "hoehe"},
            {name:"Vermarkungsart", field: "vma"}
            ];

           MPSGrid = new EnhancedGrid({
                    id: 'MPSGrid',
                    store: MPStore,
                    query: { ident: "*" },
                    structure: layout,
                    rowSelector: '20px',
                    keepSelection: false,
                    plugins: {
                        indirectSelection: {
                            headerSelector:false,
                            width:"40px",
                            styles:"text-align: center;"
                            },
                        Pagination: {
                            description: true,
                            pageStepper: true,
                            sizeSwitch: true,
                            pageSizes: ["25","50","100","All"],
                            maxPageStep: 4,
                            position: "bottom"                              
                            }
                          }                         
                    });
            MPSGrid.placeAt("DefaultContentPane");
            MPSGrid.startup();  
    }
});
}

提前致谢!

此致,Miriam

2 个答案:

答案 0 :(得分:1)

EnhancedGrid中添加插件的语法使用插件的声明名称,而不是或其实例(请参阅{{ 3}})。

您甚至不需要在需要时将插件映射到变量:

require(["dojox/grid/enhanced/plugins/Pagination"],function(){...});

在您的示例中,IndirectSelection已正确加载,因为您使用其名称(indirectSelection,小写'i'),而不是变量IndirectSelction(大写'I') ,加上错字)。

答案 1 :(得分:0)

好吧,我自己想通了。我对这个解决方案不满意 似乎没有其他方法可以将分页实现到我的网格中。

现在我用这个:

 dojo.require("dojox.grid.enhanced.plugins.Pagination");

初始化插件,现在可以正常工作。

有人知道吗,为什么当我这样称呼它时它不会起作用?

require(["dojox/grid/enhanced/plugins/Pagination"],function(pagination){...});

此致,Miriam