2013-05-13 46 views
0

我有两个项目的解决方案:自定义控件枚举财产问题

  • 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”不会显示在intellisense中。

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

我运行页面在浏览器中,同时得到一个错误:

不能“为‘SearchTextBoxMode打造’从它的字符串表示”网络类型Platform.CustomControls.Interface.SearchTextBoxModeEnum的对象'财产。

我检查所有添加的参考信息(在对象浏览器和程序Ildasm.exe,我可以看到该属性)。

+0

我怀疑有一部分代码正在分析'SearchTextBoxModeEnum'。查找这个枚举的所有引用。 – noobob 2013-05-13 14:32:36

+0

感谢您的回复。但其余的房产都很好。除了将它添加到SearchTextBoxEnum之外,我没有做任何事情。至少我应该在代码标记中的intellisense中获得它。 – 2013-05-13 14:37:47

+0

好的。但是如果项目中的某个地方有枚举值,例如一个switch语句呢?现在您添加了“互联网”,您应该为此新值添加一段代码。在枚举上按Shift + F12并检查其所有引用 – noobob 2013-05-13 14:45:26

回答

0

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

我已经向Microsoft发送了这个问题约1k次,没有答案。