代码之家  ›  专栏  ›  技术社区  ›  DiningPhilanderer

以编程方式访问样式以获取值

  •  2
  • DiningPhilanderer  · 技术社区  · 17 年前



    我想补充的最后一点是,我想以编程方式访问一个样式,并从中获取颜色代码和其他项目(.InternetGridHead),而不是硬编码,这就是我现在所做的。

    int iHeaderColor = Convert.ToInt32 ("D0D7E8", 16);
    DataGrid dg = new DataGrid();
    dg.DataSource = dsReturnDataSet.Tables[0].DefaultView;
    dg.DataBind();
    
    dg.HeaderStyle.BackColor = System.Drawing.Color.FromArgb(iHeaderColor);
    dg.HeaderStyle.Font.Bold = true;
    dg.HeaderStyle.Font.Size = 10;
    





    3 回复  |  直到 17 年前
        1
  •  2
  •   tsilb    17 年前

    全网。UI。控制对象具有。样式属性,可以作为样式[“名称”]访问。因此,您可以这样做:

    DataTable dt = LookupStyles();
    dg.Styles.Clear();
    foreach (DataRow dr in dt.Rows)
      dg.Styles.Add(dr["StyleName"].ToString(), dr["StyleValue"].ToString());
    

    几个月前我也有过类似的想法:)请注意,要使此功能正常工作,您的网格必须运行at=“server”。

    编辑: 看起来你想读取网格并使用它。..如果你正在使用。css样式和样式表(.css),您必须对css文件进行HTTP GET并自己解析。

        2
  •  1
  •   casperOne    17 年前

    您必须自己解析CSS文件,IIRC中没有CSS文件解析器。NET框架开箱即用。但是,你可以在这里找到一个免费的:

    http://www.codeproject.com/KB/recipes/CSSParser.aspx

    然后,您应该能够使用它来解析CSS文件。从那里,您应该能够获得样式和值,并将其应用于您的数据网格。

        3
  •  1
  •   Antony Scott    17 年前

    不久前,我写了一些类似这样的东西。它涉及一个HttpHandler来处理CSS文件,更改IIS配置以使asp.net接收对CSS文件的请求,以及一个包含我的颜色定义的简单xml文件结构。但你已经用数据库做到了这一点,这也很好。

    然后在CSS中,我有这样的东西。..

    .button
    {
        background-color: $colours:button-background-colour;
        color: $colours:button-text-colour;
    }
    

    我的xml定义了按钮背景颜色和按钮文本颜色的值。我使用正则表达式文本替换来处理CSS文件,替换xml文件中的相关值。

    希望这能有所帮助。

    如果你需要任何关于这些的指针,那么我相信我可以挖掘出一些示例代码。