【问题标题】:Overriding Custom Controls' CSS styling覆盖自定义控件的 CSS 样式
【发布时间】:2014-04-14 09:52:39
【问题描述】:

我有一个自定义创建的表格,并通过 CSS 在 .ascx 中对其进行样式设置。见下文:

<style>

.divTable {
    display: block;
    height: auto;
    width: calc(100% - 25%);
    font: normal 12px/150% Arial, Helvetica, sans-serif;
    overflow: hidden;
    text-align: left;
    }

.divBody {
    position: relative;
    height: calc(100% - 42px);
    border: 2px solid #000000;
    font-size: 12px;
    font-weight: normal;
    top: 0px;
    left: 0px;
    right: 0px;
    overflow-x: scroll;
    overflow-y: scroll;
    color: #383838;
    width: auto;
    height: 500px; -- this is the one I am trying to get to be the custom height; either 500px if on a view tab or auto if on another tab.
    }
....
</style>

现在,这是在一个名为 DataGridForDetails 的自定义控件中。当我将它带入“查看”页面时,它会完美地列出所有内容,看起来很棒。但是,我有一个“详细信息”表,该控件可重新用于其他数据,这些数据可能在表中具有或可能没有尽可能多的项目(即用户单击视图中的一行,将它们带到详细信息页面其中有 2 个显示资产成本和时间表成本的数据网格)。

我希望能够重复使用此数据网格,以便它在视图选项卡上“可以”为 500 像素高度,但是,当它在其他页面上时为自动高度。

有没有办法做到这一点?我试过使用!important.style1.style2。除了为其他页面创建新控件之外的所有内容(也许这是需要做的事情?)。

干杯。

【问题讨论】:

  • 它现在表现如何?
  • 根本不工作=(我会详细说明。它总是转到!important标签。它不会在这两个设置之间进行证明。仍然在玩它。

标签: html asp.net css datagrid ascx


【解决方案1】:

因此,我没有创建单独的 CSS 样式表,而是修改了原始 CSS 样式和类名,然后在后面的代码中,根据它是“VIEW”选项卡还是其他选项卡,我运行一个 if else 语句并将相应的类分配给网格。

它可能不漂亮,但它有效。

希望这会有所帮助。

干杯。

If Request.RawUrl.Contains("VIEW") Then
        sb.AppendLine("<div class='divBodyView' id='" & TableName & "'>")
    Else
        sb.AppendLine("<div class='divBodyOther' id='" & TableName & "'>")
End If

.divBodyView {
position: relative;
border: 2px solid #000000;
font-size: 12px;
font-weight: normal;
top: 0px;
left: 0px;
right: 0px;
overflow-x: scroll;
overflow-y: scroll;
color: #383838;
width: 100%;
height: 100%;
}

.divBodyOther {
position: relative;
border: 2px solid #000000;
font-size: 12px;
font-weight: normal;
top: 0px;
left: 0px;
right: 0px;
overflow-x: scroll;
overflow-y: scroll;
color: #383838;
width: 100%;
height: 100%;
}

【讨论】:

    【解决方案2】:

    一个建议

    1. 使用 div 和表格设计您的用户控件
    2. 为视图标签创建单独的 css 文件
    3. 为其他页面创建不同的 css 文件

    并在 css 中使用 id 选择。那就是使用 #div , #Table 等。所以它会影响该页面上的所有 div。

    在各个页面上仔细应用 css。

    我不确定这是不是最好的方法。

    【讨论】:

    • 这似乎是目前最好的方式,我是一个 FFSS 人(功能第一,风格第二),当谈到让某些东西工作时。这是我希望避免的,但为答案欢呼。
    猜你喜欢
    • 2017-12-23
    • 1970-01-01
    • 1970-01-01
    • 2018-05-08
    • 2020-05-23
    • 2015-05-04
    • 2019-10-23
    • 2019-10-31
    • 2012-02-04
    相关资源
    最近更新 更多