html - 哪种以编程方式引用 CSS 类的方式最可靠?

标签 html css sharepoint-2010 createchildcontrols

在我的 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"
});

...至少“无害”

最佳答案

这对我有用(假设您的元素有一个名为“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";

关于html - 哪种以编程方式引用 CSS 类的方式最可靠?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29610724/

相关文章:

jquery - 如何更改悬停文本颜色

jquery - 为表格中的不同 td 提供不同的宽度

css - 无法弄清楚是什么 css/bootstrap 语句影响了表单的布局

c# - 如何访问asp对象

sharepoint - 如何在 SharePoint 2010 中编辑列表模板?

html - SVG 的 CSS 不起作用

html - CSS:按钮/链接未正确排列——溢出有问题吗?

c# - MailMessage.To.Add() 抛出异常 : "An invalid character was found in the mail header: ' ,'."

php - 在 php/html 中创建类似框架的结构?

html - 在表格中以固定宽度显示文本