【问题标题】:Change CSS of the add form using jqGrid使用 jqGrid 更改添加表单的 CSS
【发布时间】:2012-08-09 08:49:35
【问题描述】:

我想更改jqGrid 的添加形式的CSS。是否有任何方法可用于更改 jqGrid 的添加表单链接中的完整 CSS?

我想为添加表单导入另一个 CSS 文件并申请该添加表单。

【问题讨论】:

  • 我想为 jqgrid 而不是网格 css 更改添加表单的样式
  • 请在此处发布您的 HTML 代码。
  • 我正在使用JQgridJQuery 并且我想更改当我们按下网格的+ 按钮时出现的添加表单的样式/css。
  • 你看到这个问题stackoverflow.com/questions/1308369/…添加表单或编辑表单,看看他们生成的html,我很确定这个问题和你之前问的那个Oleg回答的问题会解决你的问题。如果他们不输入一些代码并告诉我们这就是您想要的,这就是它的工作方式。理论问题不好巴维克。我很确定如果您在上一个问题中添加一些有关如何尝试更改 css 的代码,Oleg 可以进一步帮助您。

标签: javascript jquery css jquery-ui jqgrid


【解决方案1】:

您可以找到herehere 使用jqGrid 来添加/编辑表单的所有CSS 样式。如果您检查这些行并检查任何 jqGrid 表单的 HTML 片段,您会看到 jqGrid 使用的所有类。

我不明白你在“导入另一个css”下的意思。只有当你在某个地方有其他 CSS 样式具有相同的类名和相同的元素层次结构(dives、tables、tr 等元素)时,“导入”才会起作用。所以jqGrid使用的表单样式是可以改变的,但是样式的调整就不那么容易了。您必须准确检查 jqGrid 对话框(表单)的结构才能进行更改。

更新: jqGrid 使用 jQuery UI 样式。因此,您只需将 jQuery UI 更改为另一个,jqGrid 就会使用它。

例如the demo(对the answer的旧演示的简单修改)产生以下编辑表单:

【讨论】:

  • 我现在正在使用 JQueryUI 作为用户界面,如果我想更改样式 css 文件以添加表单,那么我该怎么做呢?
  • @BhavikAmbani:对不起,我不明白你的意思。你必须写一个例子what你需要改变。它不仅仅是 Add 表单中的 CSS。有一些特殊的 div 结构、子 div 和放置在表格中的字段。因此,如果您需要根据我的回答在图片中看到的更改进行更多更改,则必须了解 jqGrid 形式的 CSS(请参阅我的回答中的参考资料)。
  • @BhavikAmbani:“添加”表单没有 css 文件引用。您需要更改“添加”表单的哪个字段?你想改变一些颜色、背景图像、边距……吗?您真正想在“添加”表单中更改什么?
  • @BhavikAmbani:你应该得到一些你需要的改变的例子。我之前写过你 'Add' 表单没有 css 文件参考。只会使用标准的 jQuery UI CSS(来自Theme)和ui.jqgrid.css。因此,通过为CaptionTD.ui-jqdialog-content .CaptionTD 定义CSS 样式,您将更改表单标签的视图,通过DataTD.ui-jqdialog-content .DataTD 您可以更改数据字段的视图。您可能不需要定义新的 CSS 类。
  • @BhavikAmbani:可能你问错了问题。可能您真正需要的是使用navGridadd: false 选项并添加您的 custom 按钮(可能看起来像“添加”按钮)。你只需要navButtonAdd 就可以做到这一点。在onClickButton 内部,您可以实现您需要的任何自定义对话框。有关更多信息,请参阅来自 the answer 的参考资料。
【解决方案2】:

在您的情况下,我建议您将id 添加到<body> 标记并更改它而不是更改文件。您可以通过在每个文件中的 CSS 选择器之前添加 .bodyClass1 来操作它。

示例

style1.css

.bodyClass1 .C1{ ... }
.bodyClass1 .C2{ ... }

style2.css

.bodyClass2 .C1{ ... }
.bodyClass2 .C2{ ... }

因此,当您的HTML 使用style1.css 并且您想将其更改为style2.css 时,您只需使用:

jQuery

$('body').removeClass('bodyClass1');
$('body').addClass('bodyClass2');

【讨论】:

  • 请举例说明。
  • 这仍然会改变整个页面。
  • 但是将父类添加到 body 会改变整个页面(或者更确切地说,所有具有 C1 类的元素),而不仅仅是单个元素。
  • @BhavikAmbani 您没有提供任何实施部分,所以我无法解决为什么它不适合您。
  • 如果你也描述了这个问题会有所帮助。
【解决方案3】:

试试$('#myItemID').css( propertyName , value )

【讨论】:

  • 我想更改整个 div 标签而不是特定 id 的 while css 引用。
【解决方案4】:

您不能在不影响整个页面的情况下更改样式表。

我能想到的唯一方法是使用 iframe,但它会有点笨重。

您可以将一个类添加到父 div,然后将 css 文件更改为类似

.sheet1 .c1 {
    border: 1px solid #000
}

在第一张和

.sheet2 .c1 {
    border: 3px solid #f00;
}

在第二个。那么您的标记将是:

<div class="sheet1"> <!-- parent div -->
    <div class="c1">Hello!</div>
</div>

将父div中的sheet1类改成sheet2,子div就会改变。

【讨论】:

  • 我无法更改班级名称。
  • 你能改变样式表吗?这样,您可以向父 div 添加一个类以指定特定的工作表,并且该 div 的所有子级都可以选择它。
  • 您能提供一个示例代码吗?
  • 好吧,既然你问得这么好,我会把它放在我原来的帖子里。
【解决方案5】:

您不能将不同的样式表应用于页面的不同部分。

您最好在 css 文件中包含两个类,例如 C1 和 C2,然后通过使用以下 id 来更改相关 div 的类:

<div id="mydiv" class="c1"> </div>


$('#mydiv').addClass('c2');
$('#mydiv').removeClass('c1');

【讨论】:

  • 我无法更改班级名称。因为我的不同 css 文件将具有相同的类名和不同的属性。
  • 在这种情况下,@Mateusz Rogulski 建议是最好的选择
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-08-01
  • 2021-05-23
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多