6

我正在使用 JQgrid 来显示信息并执行 CRUD 操作。我想要一个具有 Twitter Bootstrap 外观和感觉的页面以及显示一些数据的 JQGrid,但是如果我导入 JQGrid 的 CSS 和 Bootstrap 的 CSS,则网格根本不可见。我基本上想要的是将 JQGrid 样式与其他页面样式完全分开。

这可能吗?

下面是我尝试将 Twitter Bootstrap 与 JQGrid 一起使用的页面代码:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

    <!--Styles for JQGrid-->
    <link rel="stylesheet" type="text/css" media="screen" href="/css/flick/jquery-ui-1.8.16.custom.css" />
    <link rel="stylesheet" type="text/css" media="screen" href="/jqgrid/css/ui.jqgrid.css" />

    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js" type="text/javascript"></script>
    <script src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.8.16/jquery-ui.min.js" type="text/javascript"></script>
    <script src="/jqgrid/js/i18n/grid.locale-es.js" type="text/javascript"></script>
    <script src="/jqgrid/js/jquery.jqGrid.min.js" type="text/javascript"></script>


    <!--Twitter Bootstrap Styles -->

        <link href="/bootstrap/css/bootstrap.min.css" rel="stylesheet" media="screen">

        <script src="http://code.jquery.com/jquery.js"></script>
        <script src="/bootstrap/js/bootstrap.min.js"></script>

<title>Manejo de alumnos</title>
</head>
<body>
<center>

    <div class="myjqueryUI">
        <table id="list"></table><!--Grid table-->
        <div id="pager"></div>  <!--pagination div-->
        <a href="http://localhost/ProyectoNetbeans/CodeIgniter_2.1.3/index.php/Alumnos_controller/mostrarInsertar">Insertar alumno</a>
    </div>

</center>

<script type="text/javascript">


    $(document).ready(function (){
        jQuery("#list").jqGrid({
            url: 'http://localhost/ProyectoNetbeans/CodeIgniter_2.1.3/index.php/Alumnos_controller/loadData',
            mtype : "post",             //Ajax request type. It also could be GET
            datatype: "json",            //supported formats XML, JSON or Arrray
            colNames:['Expediente','Primer apellido','Segundo apellido', 'Nombre','Cédula'],       //Grid column headings
            colModel:[
                {name:'expediente',index:'expediente', width:300, editable:true, edittype:'text'},
                {name:'primerApellido',index:'primerApellido', width:300, editable:true, edittype:'text'},
                {name:'segundoApellido',index:'segundoApellido', width:300, editable:true, edittype:'text'},
                {name:'nombre',index:'nombre', width:300, editable:true, edittype:'text'},
                {name:'cedula',index:'cedula', width:300, editable:true, edittype:'text'}

            ],
            pager: '#pager',
            rowNum:10,
            rowList:[15,30],
            sortname: 'primerApellido',
    reloadAfterSubmit: true,
            sortorder: 'asc',
            viewrecords: true,
    postData: {expediente:"expediente"},
            caption: 'Alumnos'
        }).navGrid('#pager',{edit:false,add:false,del:false},
            {

            },
            {
              },


    },  

    {multipleSearch : false}, // enable the advanced searching
    {closeOnEscape:true}

        );
    });
</script>

4

5 回答 5

6

您不仅应该发布您所做的描述,还应该发布显示您如何尝试执行此操作的代码(HTML、JavaScript 等)。

如果您想将 jqGrid 放在主要使用 Twitter Bootstrap 的页面上,我建议您使用特殊的 jQuery UI:jQuery UI Bootstrap

如果您更喜欢使用其他一些 jQuery UI CSS,您可以从官方jQuery UI 下载页面下载您需要的 CSS ,但在“CSS Scope:”字段中设置一些类名:

在此处输入图像描述

如果您在“CSS Scope:”字段中输入例如“.myjqueryUI”,那么您需要<table>将用于 jqGrid 的内容放在<div>“myjqueryUI”类中:

<div class="myjqueryUI">
    <table id="grid"></table>
</div>
于 2013-04-17T06:08:12.787 回答
4

关于 jqGrid + Bootstrap 主题的附加信息:

jqGrid(4.6.0)和Bootstrap(3)似乎存在表格边框折叠覆盖问题。

jqGrid 想要:border-collapse: separate;(CSS 默认)

Bootsrap 想要:border-collapse: collapse;

它导致网格右侧出现溢出问题。

#grid_container_id table{
    border-collapse: separate;
}

解决了这个问题。

于 2014-03-19T15:17:32.070 回答
4

检查此Bootstrap UI 模板是否包含 jqGrid 插件

您可以使用此模板中的许多功能。看起来很棒

于 2013-08-18T04:06:40.110 回答
1

这对我们有用:

1- 从以下位置获取 css: https ://github.com/Soliman/jqGrid.bootstrap

这不会更改任何 jqgrid 规范,仅更改一些 css。

该演示位于http://www.soliman.nl/test/jqgrid.bootstrap/jqGrid.bootstrap.html

2-如果您希望所有引导 css 都适用于您的表,则必须在网格加载后在下面运行:

//remove the 'ui-state' and 'ui-widget' from jquery-ui.css which prevents your customize ccs to apply on  jquery grid 
//the gbox_gridtable is the most top element in the grid
function removeJqueryUiClass(){
    $('#gbox_gridtable').find('*').andSelf().attr('class',
            function(i, css){
                if (typeof css !== 'undefined') {                    
                       return css.replace(/\ui-state\S+/g, '').replace(/\ui-widget\S+/g, '');
                    }
           });

}

3-要使 jqgrid 响应,请将您的网格放在一个 div 中,例如<div id="grid">:当然,这个 div 必须是引导网格系统的一部分,然后将下面的 js 放在您的文件中

//When the window size changes resize the gird
$(window).bind('resize', function() {
    $("#gridtable").jqGrid("setGridWidth",$("#grid").width() );
});

4-您还可以在完全加载网格时设置网格大小

于 2014-11-16T15:41:25.680 回答
1

新版 jqGrid 5.0 原生支持 Bootstrap。http://www.trirand.com/blog/?p=1484

于 2015-12-15T15:26:41.990 回答