0

我在自定义 Web 控件中向控件添加样式属性时遇到问题。下面是一个非常简单的自定义 Web 控件,只是为了说明问题:

[ParseChildren(true)]
[ToolboxData("<{0}:SomeControl runat=\"server\"></{0}:SomeControl>")]
public class SomeControl : WebControl
{
    public CheckBox MyCheckbox { get; set; }

    protected override void CreateChildControls()
    {
        MyCheckbox = new CheckBox { Text = "Here is some text" };

        MyCheckbox.Style.Add("some", "style");
        Controls.Add(MyCheckbox);

        base.CreateChildControls();
    }
}

在页面上使用时,我得到以下输出:

<span><span style="some:style;"><input id="ctl03" type="checkbox" name="ctl03" /><label    for="ctl03">Here is some text</label></span></span>

为什么 style 属性在 span 标签上而不是在 input 标签上?

4

1 回答 1

2

这是向复选框添加样式的两种方法,您使用的方式将尝试为检测到的浏览器 UserAgent 呈现,从而将复选框包装在具有样式属性的跨度中。

另一种方式将样式属性直接添加到复选框。

MyCheckbox.InputAttributes.Add("some", "style");
于 2012-02-10T09:27:28.600 回答