自定义控件枚举属性问题

时间:2013-05-13 14:23:27

标签: c# asp.net custom-controls

我有两个项目的解决方案:

  • CustomControls具有自定义控件(.cs文件)
  • WebPages有aspx页面

其中一个控件有如下属性:

----在Platform.CustomControls命名空间-------

中定义
[Category("Search Mode"),
DefaultValue(SearchTextBoxModeEnum.global),
Personalizable(PersonalizationScope.Shared),
TypeConverter("String"),
WebBrowsable(true),
WebDisplayName("SearchTextBoxMode"),
WebDescription("SearchTextBoxMode")]

public SearchTextBoxModeEnum SearchTextBoxMode
{
  set;
  get;
}

----在Platform.CustomControls.Interface命名空间-------

中定义
public enum SearchTextBoxModeEnum
{
  global,
  forms,
  products,
  internet
}

此项目成功构建。

当我在我的网页项目中引用此项目并在控件标记中添加该属性时,会显示所有其他枚举,但智能感知中不会显示“internet”。

<Platform:searchtextbox id="SearchTextBox3" runat="server" SearchTextBoxMode="internet"   pagename="xyz">
</OnlinePlatform:ecmssearchtextbox>

我在浏览器中运行页面时遇到错误:

  

无法从“SearchTextBoxMode”属性的字符串表示形式“internet”创建Platform.CustomControls.Interface.SearchTextBoxModeEnum类型的对象。

我使用添加的引用检查了所有细节(在对象浏览器和ILDASM.exe中,我可以看到该属性)。

1 个答案:

答案 0 :(得分:0)

问题是枚举属性。 VS2012无法使用具有枚举属性的自定义控件呈现表单。

我已经向微软发出了大约1k次的问题,没有回答。