首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >免费jqgrid搜索按钮不起作用。

免费jqgrid搜索按钮不起作用。
EN

Stack Overflow用户
提问于 2015-10-28 15:55:23
回答 1查看 297关注 0票数 0

我有一个产品网格,我现在正在进行搜索,当我单击放大镜时,grid.addons.js文件中出现了一个错误:

代码语言:javascript
复制
oprtr[j] = {op:stempl[j],text: p.odata[j].text};
Uncaught TypeError: Cannot read property '0' of undefined.

我确信这是因为我正在做的事情,谁能看看我的网格,并告诉我为什么它不工作?

代码语言:javascript
复制
$("#productsTable").jqGrid({
    data: parsedResult,
    datatype: "local",
    loadonce: true,
    height: 'auto',
    marginLeft: 'auto',
    colNames: [
        'Product Id', 'Add', 'Product Name', 'Product Code', 'Customer Price'
    ],
    colModel: [
        { name: 'Id', width: 0, hidden:true },
        { name: "actions", template: "actions", width: 50, formatoptions:{
                delbutton: false,
                editbutton: false
        } },
        { name: 'Name', index: 'Name', width: 550, searchoptions:{sopt:['eq','bw','bn','cn','nc','ew','en']} },
        { name: 'ProductCode', index: 'ProductCode', width: 150, searchoptions:{sopt:['eq','bw','bn','cn','nc','ew','en']} },
        { name: 'Price', index: 'Price', width: 100, formatter: 'currency', formatoptions:{decimalSeparator:".", thousandsSeparator: ",", decimalPlaces: 2, prefix: "$"},
            searchoptions:{sopt:['eq','ne','le','lt','gt','ge']}}
    ],
    rowNum: 15,
    rowList: [5, 10, 15, 20],
    pager: true,
    gridView: true,
    viewrecords: true,
    iconSet: "jQueryUI",
    sortname: 'Name',
    sortorder: 'asc',
    inlineEditing: { keys: false },
    search: true,
    actionsNavOptions: {
            addToCarticon: "ui-icon-cart",
            addToCarttitle: "Add item to the cart",
            custom: [
                { action: "addToCart", position: "first", onClick: function (options) { 
                    var rowData = $('#productsTable').getRowData(options.rowid);
                    var cartButton = $(".ui-icon", "#jAddToCartButton_"+options.rowid);
                    if(cartButton.hasClass("ui-icon-cancel")){
                        cart.shift(rowData);
                        cartButton.removeClass("ui-icon-cancel");
                        cartButton.addClass("ui-icon-cart");
                    }
                    else if(cartButton.hasClass("ui-icon-cart")){
                        cart.push(rowData);
                        cartButton.removeClass("ui-icon-cart");
                        cartButton.addClass("ui-icon-cancel");
                    }
                }
            }]
        },
    loadComplete: function() {
                $("#add-product-dialog-loading-message").hide();
                $(".spinner").hide();
                $("#add-product-dialog-form").dialog("open");

                //for each object in cart
                //if product ID matches product Id in product 
                //grid then set button to a cancel icon
                if(cart.length !== 0){
                    var cartIds = [];
                    var jsonCart = JSON.stringify(cart);
                    var parsedJsonCart = JSON.parse(jsonCart);
                    var productsInCart = $.grep(parsedJsonCart, function(el,i){
                        cartIds.push(el.Id);
                    });

                    var currentRows = $('#productsTable').getRowData();
                    var shownProductsThatAreInCart = $.grep(currentRows, function (el, i) {
                            return $.inArray(el.Id, cartIds) !== -1;
                    });

                        if(shownProductsThatAreInCart.length > 0){
                                var rowIds = $(this).jqGrid('getDataIDs');
                                $.each(rowIds, function(k, v) {
                                        rowData = $('#productsTable').getRowData(v);

                                if($.inArray(rowData['Id'], cartIds) !== -1){
                                    alert("Matched Product:\nRowData['id'] = " + rowData['Id'] + "\nto\nProduct in cart: " + cartIds.Id);
                                    $(".ui-icon", "#jAddToCartButton_"+v).removeClass("ui-icon-cart");
                                    $(".ui-icon", "#jAddToCartButton_"+v).addClass("ui-icon-cancel");
                                }
                            });
                        }
                    }
                },
                gridComplete: function() {
                }
        });
        $("#productsTable").jqGrid("navGrid", {edit:false,add:false,del:false}).jqGrid("filterToolbar", {searchOperators : true});

我的包括:

代码语言:javascript
复制
value="https://code.jquery.com/jquery-1.10.2.min.js" />
value="https://code.jquery.com/ui/1.11.4/jquery-ui.min.js" />
value="https://cdnjs.cloudflare.com/ajax/libs/jquery.ui-contextmenu/1.11.0/jquery.ui-contextmenu.min.js" />

value="https://cdnjs.cloudflare.com/ajax/libs/free-jqgrid/4.9.2/js/jquery.jqgrid.min.js" />
value="https://cdnjs.cloudflare.com/ajax/libs/free-jqgrid/4.9.2/js/i18n/grid.locale-en.js" />
value="https://cdnjs.cloudflare.com/ajax/libs/free-jqgrid/4.9.2/plugins/grid.setcolumns.js" />
value="https://cdnjs.cloudflare.com/ajax/libs/free-jqgrid/4.9.2/plugins/jquery.contextmenu.js" />
value="https://cdnjs.cloudflare.com/ajax/libs/free-jqgrid/4.9.2/plugins/jquery.searchfilter.js" />
value="https://cdnjs.cloudflare.com/ajax/libs/free-jqgrid/4.9.2/plugins/ui.multiselect.js" />
value="https://cdnjs.cloudflare.com/ajax/libs/free-jqgrid/4.9.2/plugins/grid.postext.js" />
value="https://cdnjs.cloudflare.com/ajax/libs/free-jqgrid/4.9.2/plugins/grid.addons.js" />

谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-10-28 16:12:26

您应该删除grid.addons.js。它将一些现有的方法替换为非常老的方法。我将在下一个版本中删除grid.addons.js。遗憾的是,在我发布了免费jqGrid的新版本4.10.0之后,我直接阅读了您的问题。如果我要在删除4.10.0中的文件之前读取它的话。:-)

同样,不建议使用grid.postext.jsjquery.searchfilter.jsgrid.setcolumns.js文件。有趣的是jquery.jqgrid.showhidecolumnmenu.jsjquery.createcontexmenufromnavigatorbuttons.jsgrid.odata.js,但我建议您只在使用文件中的相应方法时才首先包含这些文件。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33395754

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档