【高分求解】asp.net组件 添加枚举属性时错误
写了一个分页组件。添加了一个枚举属性
名称空间PagerPro,
类名PagerPro
[Browsable(true)]
[CategoryAttribute( "Appearance ")]
[Description( "Define control style ")]
public StyleList DefineStyle
{
get { return ViewState[ "_defineStyle "] == null ? StyleList.None : (StyleList)ViewState[ "_defineStyle "]; }
set { ViewState[ "_defineStyle "] = value; }
}
public enum StyleList
{
None,Standard
}
问题出来啦:如果在cs代码里设置DefineStyle属性,不会出现任何错误
PagerPro1.DefineStyle = PagerPro.PagerPro.StyleList.Standard;
但是在aspx页面里制定PagerPro1的DefineStyle属性时,编译就会出错
<cc1:PagerPro ID= "PagerPro1 " runat= "server " StartPage= "1 " ShowGotoPage= "True " ShowTotalPage= "True " DefineStyle= "Standard " />
错误代码 error CS0117: “PagerPro.PagerPro”并不包含“PagerPro”的定义
请各位帮忙看看是什么原因。以下是aspx页面代码,仅供参考
<%@ Page Language= "C# " AutoEventWireup= "true " CodeFile= "Default.aspx.cs " Inherits= "_Default " %>
<%@ Register Assembly= "PagerPro " Namespace= "PagerPro " TagPrefix= "cc1 " %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN " "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd ">
<html xmlns= "http://www.w3.org/1999/xhtml " >
<head runat= "server ">
<title> Untitled Page </title>
</head>
<body>
<form id= "form1 " runat= "server ">
<div>
<asp:GridView ID= "GridView1 " runat= "server " AutoGenerateColumns= "False " DataSourceID= "ObjectDataSource1 "
Width= "564px ">
<Columns>
<asp:BoundField DataField= "CustomerID " HeaderText= "CustomerID " />
<asp:BoundField DataField= "CompanyName " HeaderText= "CompanyName " />
</Columns>
</asp:GridView>
<asp:ObjectDataSource ID= "ObjectDataSource1 " runat= "server " TypeName= "DLL.PagerDB " SelectMethod= "GetCustomers "
SelectCountMethod= "GetPageCount " MaximumRowsParameterName= "pageSize " StartRowIndexParameterName= "currentPageNumeric " OnObjectCreating= "ObjectDataSource1_ObjectCreating " OnSelecting= "ObjectDataSource1_Selecting ">
<SelectParameters>
<asp:ControlParameter ControlID= "PagerPro1 " Name= "currentPageNumeric " PropertyName= "CurrentPageNumeric " Type= "Int32 "/>
<asp:ControlParameter ControlID= "PagerPro1 " Name= "pageSize " PropertyName= "PageSize " Type= "Int32 "/>
</SelectParameters>
</asp:ObjectDataSource>
<cc1:PagerPro ID= "PagerPro1 " runat= "server " StartPage= "1 " ShowGotoPage= "True " ShowTotalPage= "True " DefineStyle= "Standard " />
</div>
</form>
</body>
</html>
[解决办法]
你的组件编译成功了吗?如果成功了,你可以在aspx重新添加引用。
[解决办法]
应该没问题啊,
而且错误提示:
错误代码 error CS0117: “PagerPro.PagerPro”并不包含“PagerPro”的定义
也不是提示DefineStyle没定义,而是说类PagerPro没定义
[解决办法]
代码贴出来看看》
[解决办法]
这贴有那么多牛人关注啊,留个记号
[解决办法]
Visual C# Reference: Errors and Warnings
Compiler Error CS0117
'type ' does not contain a definition for 'identifier '
This error occurs when a reference is made to a member that does not exist for the data type.
Several common situations can generate this error:
Calling a method that does not exist.
Using the Item property followed by an indexer.
Calling a qualified method when a class name and its enclosing namespace name are the same.
Calling an interface written in a language that supports static members inside interfaces.
The following sample generates CS0117.
[解决办法]
错误代码 error CS0117: “PagerPro.PagerPro”并不包含“PagerPro”的定义
=======
看样子,这与你说的枚举属性 DefineStyle ,并没有直接关系
为什么你喜欢将 命名空间与类型名称 取的一样?这是一种不好的命名方式,虽说可以,但会带来不必要的麻烦,有时候不显示用完整名称,编译器无法正确解析,修改下命名空间吧
同时,你是否定义了带参数的构造函数,而又没有定义无参的构造函数?
[解决办法]
up
[解决办法]
mark