【问题标题】:Which way of programmatically referencing a CSS class is most reliable?以编程方式引用 CSS 类的哪种方式最可靠?
【发布时间】:2015-06-19 01:58:20
【问题描述】:

在我的 Sharepoint 项目中,我在重写的 CreateChildControls() 方法中动态创建控件。不知道这两种引用.css文件的方式哪一种比较好:

protected override void CreateChildControls()
{
    base.CreateChildControls();

    // Way 1
    // from http://sharepoint.stackexchange.com/questions/18652/programmatically-add-js-css-to-pages
    this.Controls.Add(new CssRegistration()
    {
        Name = "/_layouts/ucsc_web_forms.css"
    });

    // Way 2
    HtmlLink cssLink = new HtmlLink();
    cssLink.Attributes.Add("type", "text/css");
    cssLink.Attributes.Add("rel", "stylesheet");
    cssLink.Attributes.Add("href", "/_layouts/duckbilled_platypi_rus.css");
    this.Page.Header.Controls.Add(cssLink);

    boxPayeeName = new TextBox();
    boxPayeeName.CSSClass = "duck-billed-platypi";
    boxPayeeName.Columns = LONG_TEXT_BOX_COL_WIDTH;
}

...但至少其中一个应该可以解决问题。一种方法是否优于另一种方法?

更新

基于经验观察(经验反击),第二种“方式”破坏了 WebPart,至少我的。第一个:

this.Controls.Add(new CssRegistration()
{
    Name = "/_layouts/ucsc_web_forms.css"
});

...至少“无害”

【问题讨论】:

    标签: html css sharepoint-2010 createchildcontrols


    【解决方案1】:

    这对我有用(假设您的项目有一个名为“ucsc_web_forms.css”的 CSS 文件,其中包含名为“finaff-webform-field-label”和“finaff-webform-field-input”的类):

    在“base.CreateChildControls();”之后将以下内容添加到 CreateChildControls():

    this.Controls.Add(new CssRegistration()
    {
        Name = "/_layouts/ucsc_web_forms.css"
    });
    

    ...然后,创建动态控件就像这样很有效:

    LiteralControl reqDateStr = new LiteralControl("<span class=\"finaff-webform-field-label\">Requester Date:</span>");
    . . .
    boxPayeeName = new TextBox();
    boxPayeeName.CssClass = "finaff-webform-field-input";
    

    【讨论】:

      猜你喜欢
      • 2011-06-17
      • 2012-06-05
      • 2023-04-03
      • 2011-04-19
      • 2013-06-28
      • 1970-01-01
      • 2016-10-24
      • 2013-05-20
      • 1970-01-01
      相关资源
      最近更新 更多