0

我是 jqGrid 的新手,上周才开始使用它。我对为什么列选择器不可见有点困惑。我尝试了 3 种不同的列选择器脚本,但没有运气。然后我下载了最新的 jqGrid 版本,这是没有运气的。:-( 看来我对 jquery 和 jqgrid 的了解不够,无法正常工作。谢谢...

<!DOCTYPE html>  
<html>
<head>
    <meta http-equiv="content-type" content="text/html; charset=UTF-8" />
    <!-- This force IE to use the latest version of HTML, CSS and JavaScript instead of being forced to use 1 specific IE version only -->
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />  
    <title>Blah</title>
    <link rel="stylesheet" type="text/css" href="css/jquery-ui-v1.10.3.themes/base/minified/jquery-ui.min.css" />
    <link rel="stylesheet" type="text/css" href="css/jqgrid-v4.5.0/ui.jqgrid.css" />
    <link rel="stylesheet" type="text/css" href="css/jqgrid-v4.5.0/ui.multiselect.css" />
    <script type="text/javascript" src="scripts/jquery-v2.0.0.min.js"></script>
    <script src="scripts/jquery-ui-v1.10.3/minified/jquery-ui.min.js" type="text/javascript"></script>
    <script src="scripts/jqgrid-v4.5.0/i18n/grid.locale-en.js" type="text/javascript"></script>
    <!--<script src="scripts/jqgrid-v4.5.0/jquery.jqGrid.min.js" type="text/javascript"></script>-->
    <script src="scripts/jqgrid-v4.5.0/jquery.jqGrid.src.js" type="text/javascript"></script>
    <script src="scripts/jqgrid-v4.5.0/ui.multiselect.js" type="text/javascript"></script>
    <script type="text/javascript">
    $(document).ready(function () {
        var jqgridSpreadsheetId = $('#MyInventoryJqgrid_Spreadsheet');
        var jqgridPagerId = $('#MyInventoryJqgrid_Pager');

        ////jqGrid Column Chooser / JQuery Multiselect Plugin...
        ////http://www.trirand.com/jqgridwiki/doku.php?id=wiki:jquery_ui_methods&s[]=column&s[]=chooser...
        //jqgridSpreadsheetId.extend({
        //    columnChooser: function (opts) {
        //        opts = $.extended({
        //            "title": 'Select columns',
        //            "width": 200,
        //            "height": 400,
        //            //classname: '',
        //            "done": function (parm) { if (perm) { self.jqgrid("remapColumns", perm, true); } },
        //            "msel": "multiselect"//,
        //            //dlog: '',
        //            //dlog_opts: '',
        //            //cleanup: function () { }
        //        });
        //    }
        //});

        //jqGrid Plugin...
        //http://www.trirand.com...
        jqgridSpreadsheetId.jqGrid({
            url: '../websrvc/JqGrid.ashx',
            datatype: 'json',
            mtype: 'POST',
            postData: { WhichJqgridTemplate: '<%=JqqridTools.Template.MyInventory%>', WhichAction: '<%=JqqridTools.Action.Display%>' },
            colNames: ['Id','Stock Number','VIN','Year','Make','Model','Trim','Mileage','Purchase Price','Stock Date','Repair Cost','Total Cost','Days In Inventory'],  //Display Text in Column Header...
            colModel: [
                       //In this case, use "sorttype" property in "colModel" for it to work when "loadonce" is set to true...
                       { name: 'Id', index: 'Id', hidden: true, sorttype: 'int', width: 0, align: 'left' },
                       { name: 'StockNumber', index: 'StockNumber', sorttype: 'text', width: 100, align: 'left' },
                       { name: 'Vin', index: 'Vin', sorttype: 'text', width: 140, align: 'left' },
                       { name: 'Year', index: 'Year', sorttype: 'int', width: 50, align: 'left' },
                       { name: 'Make', index: 'Make', sorttype: 'text', width: 80, align: 'left' },
                       { name: 'Model', index: 'Model', sorttype: 'text', width: 80, align: 'left' },
                       { name: 'Trim', index: 'Trim', sorttype: 'text', width: 100, align: 'left' },
                       { name: 'Mileage', index: 'Mileage', sorttype: 'int', width: 60, align: 'left' },
                       { name: 'PurchasePrice', index: 'PurchasePrice', sorttype: 'currency', width: 60, align: 'left' },
                       { name: 'StockDate', index: 'StockDate', sorttype: 'date', width: 80, align: 'left', formatter: 'date', formatoptions: { newformat: 'm/d/Y' } },  //"formatter" and "formatoptions" is required for date sorting to works properly...
                       { name: 'RepairCost', index: 'RepairCost', sorttype: 'currency', width: 60, align: 'left' },
                       { name: 'TotalCost', index: 'TotalCost', sorttype: 'currency', width: 60, align: 'left' },
                       { name: 'DaysInInventory', index: 'DaysInInventory', sorttype: 'int', width: 65, align: 'left' }
                      ],
            pager: jqgridPagerId,
            rowNum: 10,
            rowList: [5, 10, 20, 50],  //Drop-down selection in footer - To show how many rows per page...
            //sortname: 'StockDate',
            //sortorder: 'desc',
            sortname: 'Vin',
            sortorder: 'desc',
            viewrecords: true,
            //gridview: true,
            imgpath: '',
            caption: 'My Inventory',
            width: 1022,
            shrinkToFit: false,
            height: 200,
            sortable: true,  /* This allows both 1) Moving columns sideway to other location fields and 2) for jqGrid Column Chooser Plugin / JQuery Multiselect Plugin to work... */
            loadonce: true,  //In this case, use "sorttype" property in "colModel" for it to work when "loadonce" is set to true...
            loadError: function (xhr, st, err) {
                //alert("Type: " + st + "; Response: " + xhr.state + "; Status: " + xhr.statusTeext + "; Error: " + err);
                alert("An error had occurred, please try again or notify webmaster of this error");
            }
        }).jqGrid('navButtonAdd', jqgridPagerId, { 
            caption: 'ddd', 
            buttonicon: 'ui-icon-calculator',
            title: 'choose columns',
            onClickButton: function () {
                jqgridSpreadsheetId.jqGrid('columnChooser');
            }
        });

        //Navigation Buttons...
        /*
        $('#' + jqgridSpreadsheetId).jqGrid('navButtonAdd', '#' + jqgridPagerId, {
            caption: "dd",
            buttonicon: "ui-icon-calculator",
            title: "choose columns", 
            onclickButton: function () {
                $(this).jqGrid('columnChooser', {
                    done: function (perm) {
                        if (perm) {
                            this.jqGrid("remapColumns", perm, true);
                            saveColumnState.call(this.perm);
                        }
                    }
                });
            }
        });
        */
    });
    </script>  
</head>
<body>

    <table id="MyInventoryJqgrid_Spreadsheet" class="scroll"></table>
    <div id="MyInventoryJqgrid_Pager" class="scroll" style="text-align:center;"></div>

</body>
</html>
4

1 回答 1

1

navButtonAdd可以在现有导航栏中添加按钮。所以你必须在之前调用navGrid(参见文档)。例如

$("#MyInventoryJqgrid_Spreadsheet").jqGrid({
    url: "../websrvc/JqGrid.ashx",
    datatype: "json",
    pager: "#MyInventoryJqgrid_Pager",
    ...
}).jqGrid("navGrid", "#MyInventoryJqgrid_Pager",
    {add: false, edit: false, del: false, search: false, refresh: false})
.jqGrid("navButtonAdd", "#MyInventoryJqgrid_Pager", {
    caption: "ddd",
    buttonicon: "ui-icon-calculator",
    title: "choose columns",
    onClickButton: function () {
        $(this).jqGrid("columnChooser");
    }
});
于 2013-05-14T18:40:55.300 回答