Jqgrid не показывает столбец флажка - PullRequest
0 голосов
/ 19 апреля 2020

Я добавляю таблицу jqGrid в свой основной проект. net.

Я хочу показать первый столбец моей таблицы как флажок. (Заголовок и строки с флажком)

Содержимое файла test.cs html page

<html lang="ja">
<head>
    <meta charset="utf-8" />
    <link href="~/lib/bootstrap4-toggle/css/bootstrap4-toggle.min.css" rel="stylesheet" />
    <!-- Files for jqgrid-->
    <link href="~/lib/jqueryui/jquery-ui.css" rel="stylesheet" />
    <link href="~/lib/jqgrid/css/ui.jqgrid.css" rel="stylesheet" />
    <link rel="icon" href="~/image/logoTitle.png" />
    <link href="~/css/myCSS.css" rel="stylesheet" />

</head>
<body>
    <div>
       <table id="jqGrid"></table>
       <div id="jqControls"></div
    </div>

    <script src="~/lib/jquery/jquery.min.js"></script>
    <script src="~/lib/bootstrap4-toggle/js/bootstrap4-toggle.min.js"></script>
    <script src="~/lib/bootstrap/dist/js/bootstrap.js"></script>

    <script src="~/lib/jqgrid/js/jquery.jqGrid.min.js" type="text/javascript"></script>
    <script src="~/lib/jqgrid/js/i18n/grid.locale-ja.js" type="text/javascript"></script>
    <script src="~/lib/jqueryui/jquery-ui.js"></script>
    <script type="text/javascript" src="~/js/test.js"></script>
</body>
</html>

Содержимое файла tets.ts

interface JQuery {
    [x: string]: any;
    jqGrid: any;
}

$(document).ready(function () {
    $("#jqGrid").jqGrid({
        url: "./GetData",
        datatype: 'json',
        mtype: 'Get',
        multiselect: true,
        colNames: ['Col1', 'Col2', 'Col3'],
        colModel: [
            { key: false,name:'Col1',index:'Col1',editable:true,sortable:true,width:'100px',search: false,align:'center'},
            { key:false,name:'Col2',index:'Col2',editable:true,sortable:true,width:'120px',search: false,align:'center'},
            { key:false,name:'Col3',index: 'Col3',editable:true,sortable:true,width:'100px',search: false,align:'center'}
        ],
        pager: jQuery('#jqControls'),
        rowNum: 20,
        rowList: ['10', '20', '30', '40', 'All'],
        height: 600,
        viewrecords: true,
        sortname: 'Col1',
        sortorder: 'desc',
        caption: '',
        emptyrecords: '',
        jsonReader: {
            root: "rows",
            page: "page",
            total: "total",
            records: "records",
            repeatitems: false,
            Id: "0"
        },
        autowidth: true,
        beforeSelectRow: function (rowid, e) {
            // Disable row selection
            return false;
        },
        onCellSelect: function (rowid, iCol, cellcontent, e) {
            // Handle Add, Edit, Delete action
            //handleAction(rowid, iCol, cellcontent, e);
        },
        onSortCol: function (index, iCol, sort) {
            // set current page number
            //jQuery("#jqGrid").setGridParam({ page: PageNumber });
        },
        loadComplete: function (data) {
            // save current page number
            PageNumber = data.page;
            // error handling
            if (data.success === false) {
            }
        }
    });
    $(".ui-jqgrid-titlebar").hide(); function () { fnBeforeSearch(); } });
});

с использованием вышеуказанного исходного кода все столбцы таблиц видны в браузере, но флажки не отображаются. Я проверил таблицу jqGrid, и результат выглядит следующим образом.

Изображение 1: когда флажок не отображается в браузере

enter image description here

Изображение 2: Обновил вручную тип ввода для кнопки enter image description here

Дополнительная информация: Браузер: Edge

JQGrid: jqGrid JS - v5.4.0

jqueriui: jQuery UI - v1.12.1

1 Ответ

0 голосов
/ 19 апреля 2020

Вы делаете абсолютно несоответствие в своем коде - вы используете файл css из dataTables и javascript из jqGrid. Чтобы увидеть флажки, вам необходимо уточнить, какой плагин вы будете использовать - dataTables или jqGrid.

Если вы хотите использовать Guriddo jqGrid, пожалуйста, прочитайте документы о том, как использовать правильную сетку. Смотри здесь

...