【问题标题】:Applying style to jqgrid将样式应用于 jqgrid
【发布时间】:2017-12-27 19:44:47
【问题描述】:

我正在使用免费的 jqgrid(最新版本)

我从演示中看到的是网格是蓝色的。

我在我的应用程序中使用了它,不确定缺少什么,但网格显示为灰色。我还应用了 guiStyle: "bootstrap" 但这也只是改变了很少的外观和字体,但没有改变颜色。同样在搜索对话框中,控件彼此对齐,就像它们都在一起一样。请参阅下面的图片链接。

https://imgur.com/a/kzCJ3

  1. 如何将颜色更改为默认蓝色
  2. 如何修复搜索对话框控件
  3. 如何将任何其他自定义样式格式应用于此。

谢谢

-------------已更新------

 <link href="/lib/bootstrap/dist/css/bootstrap.min.css" rel="stylesheet" /> (bootstrap 4.0.0) 
 <link href="~/lib/free-jqgrid/css/ui.jqgrid.css" rel="stylesheet" /> (4.15.2)
 <link href="~/lib/jquery-ui/themes/base/jquery-ui.min.css" rel="stylesheet" />
 <link href="~/lib/font-awesome/css/font-awesome.min.css" rel="stylesheet" />
 <link href="~/lib/select2/dist/css/select2.min.css" rel="stylesheet" />

 @section scripts{
<script src="~/lib/jquery/dist/jquery.min.js"></script>   
<script src="~/lib/free-jqgrid/dist/modules/grid.base.js"></script>
<script src="~/lib/free-jqgrid/dist/modules/grid.common.js"></script>
<script src="~/lib/free-jqgrid/dist/modules/grid.formedit.js"></script>
<script src="~/lib/free-jqgrid/dist/modules/grid.filter.js"></script>
<script src="~/lib/jquery-ui/jquery-ui.min.js"></script>
<script src="~/lib/select2/dist/js/select2.min.js"></script>
<script src="~/lib/free-jqgrid/js/i18n/grid.locale-en.js"></script>
<script src="~/lib/free-jqgrid/js/jquery.jqgrid.min.js"></script>

我没有应用/使用除上述 css/js 之外的任何样式,如下所示:

  guiStyle: "bootstrap",
  iconSet: "fontAwesome",

【问题讨论】:

  • 请提供演示(或演示),演示您包含哪些 CSS 和 JavaScript 文件以及您使用哪些选项。你是只使用 Bootstrap CSS(Bootstrap 3 或 Bootstrap 4),还是只使用 jQuery UI CSS 或两者都使用?如果你使用默认的 Bootsrap CSS,那么大多数颜色都是灰色的。您可以轻松更改几乎任何网格元素的颜色或背景颜色,但您应该准确指定您需要的内容。诸如“如何将颜色更改为默认蓝色”之类的语句几乎没有提供任何信息,因为您没有指定网格的任何确切元素(数据、列标题、寻呼机……)。
  • 已更新问题

标签: jquery jqgrid free-jqgrid


【解决方案1】:

我建议您更准确地指定您所做的(通过演示)以及您想要拥有的内容。

在回答你的问题之前,我想说明一下,你真的不需要为 jqGrid 使用jquery-ui.min.css 是你使用guiStyle: "bootstrap"

Bootstrap 4 和 Bootstrap 3 的 CSS 设置不同。如果你在 Bootstrap 4 中使用免费的 jqGrid,那么你必须使用 guiStyle: "bootstrap4" 而不是 guiStyle: "bootstrap"。以https://jsfiddle.net/ovq05x0c/1/ 为例。

如果您包含jquery.jqgrid.min.js,那么您不需要包含grid.base.jsgrid.common.jsgrid.formedit.jsgrid.filter.js,并且您需要以任何方式包含i18n/grid.locale-en.js,因为它是jquery.jqgrid.min.js 的一部分或grid.base.js。如果您自己不使用 jQuery UI,则也不需要文件 query-ui.min.js

最佳做法是从 CDN 加载所有 CSS 和 JavaScript 文件,而不是从本地服务器加载。本地服务器可能仅适用于本地应用程序,但不适用于 Internet 可用的一侧。有关使用 CDN 中的免费 jqGrid 的更多信息,请参阅the article

我建议您阅读 the article 作为使用免费 jqGrid 的起点。它提供了一些自定义网格的示例。比如CSS规则

.ui-jqgrid.ui-jqgrid-bootstrap {
    border: 1px solid #003380;
}

改变网格外层div的边框颜色,CSS规则

 .ui-jqgrid.ui-jqgrid-bootstrap .ui-jqgrid-caption {
    background-color: #e6f0ff;
}

更改标题/标题的背景颜色。又一条 CSS 规则

.ui-jqgrid.ui-jqgrid-bootstrap .ui-jqgrid-hdiv {
    background-color: #cce0ff;
}

更改列标题的背景颜色。以同样的方式,您可以自定义 jqGrid 的任何其他元素。演示 https://jsfiddle.net/OlegKi/90qmjean/7/ 是在免费 jqGrid 和 select2 中更改某些颜色和字体大小的示例,您可能也使用过。

【讨论】:

  • 谢谢奥列格。我已根据您的建议进行了更改,并将努力更改样式。这里只有一件事。早些时候我有 guiStyle: "bootstrap" 并且在更改为 guiStyle: "bootstrap4" 后,每当我选择一行时,所选行的颜色都不会改变。如果我将它改回“引导程序”,我可以看到所选行颜色的变化。我还尝试添加 .ui-jqgrid-btable .ui-state-highlight { 背景:黄色; } 根据您的一篇帖子,但这也不起作用。
  • @aman:如果您报告问题或错误,请始终提供演示。我在答案中包含了jsfiddle.net/ovq05x0c/1 演示,它使用guiStyle: "bootstrap4" 和Bootstrap 4.0.0-beta.2 和免费的jqGrid 4.15.2。我认为在演示中选择行没有问题。
  • 抱歉,我遇到了问题。尽管我已将引导程序更新为 4,但它仍然引用 3。我不得不删除缓存,重新启动浏览器等。此外,在我的项目中还有另一个想法,我们正在使用一些 dash-light css 来设置侧面和顶部菜单的样式。如果我使用引导程序 4,那么它会搞砸。但它适用于我已更新回的 bootstrap 3。现在使用 bootstrap 3,我的网格可以正常工作,但只是我必须编写 guiStyle:"bootstrap" 而不是 guiStyle:"bootstrap3"。当我再次编写 bootstrap 3 时,我的页面一团糟。
  • @aman: 免费 jqGrid 中不存在 guiStyle: "bootstrap3" 选项。你不应该使用任何幻想值。如果您未定义自定义 GUI 样式,则属性 guiStyle 可以是 "jQueryUI""bootstrap""bootstrapPrimary""bootstrap4"。见here
  • 为什么jqgrid的gui看起来不专业?我的意思是看看 devexpress / telerik datagrid 等。你能做类似的设计吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-01-23
  • 2015-11-01
  • 2023-03-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多