我在创建新的CompositeControl时遇到问题。

目前我有一个继承自TextBox的自定义控件,控件没有定义Style属性,但是我可以在页面Markup中设置属性,并且样式将被正确应用。

我正在尝试创建一个与自定义控件具有相同功能的CompositeControl,一切正常,直到我尝试在控件上设置Style属性,在编译时抛出此错误:"' Style'属性不能以声明方式设置" ,即使我在CompositeControl的代码中声明'Style'属性,这仍然会发生(即使我使用'new'关键字)。

我无法理解为什么我在其中一个控件中得到错误而在另一个控件中没有错误。

任何建议都将受到赞赏。

由于

有帮助吗?

解决方案

我“解决”了它!

我只是不必在我正在创建的复合控件中定义Style属性,如果我这样设置我可以将Style添加到控件并在控件的代码中访问它。

e.g。

  <cc1:MyCompositeControl runat="server" Style="background-color:Red" />

在MyCompositeControl代码中,我可以像访问它一样访问它:

  foreach (string item in Style.Keys)
  {
     input.Style.Add(item, Style[item]);
  }

并将样式设置为我想要应用的控件(在本例中为 input 控件)。

我仍然无法理解为什么我不能设置Style属性,但好处是我不需要。

感谢您的帮助

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top