0

在搜索网络和 SO 没有任何成功后,我现在寻求您的帮助。

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

如果我删除分页,它会再次正常工作。css 文件也正确加载。我们使用道场 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();  
    }
});
}

提前致谢!

问候,米里亚姆

4

2 回答 2

1

在 an 中包含插件的语法使用插件EnhancedGrid声明名称,而不是它的或它的实例(参见http://dojotoolkit.org/reference-guide/1.9/dojox/grid/EnhancedGrid/plugins/Pagination。 html#plugin-declaration)。

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

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

在您的示例中,由于您使用了它的名称( ,小写“i”),而不是变量(大写“I”,加上错字) ,IndirectSelection因此正确加载了。indirectSelectionIndirectSelction

于 2013-11-06T13:55:12.000 回答
0

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

现在我用这个:

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

初始化插件,现在它可以工作了。

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

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

问候,米里亚姆

于 2013-11-05T13:12:08.420 回答