写了一个分页组件。添加了一个枚举属性
名称空间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>
        &nbsp;
        <cc1:PagerPro ID="PagerPro1" runat="server" StartPage="1"  ShowGotoPage="True" ShowTotalPage="True" DefineStyle="Standard" />
</div>
    </form>
</body>
</html>

解决方案 »

  1.   

    你的组件编译成功了吗?如果成功了,你可以在aspx重新添加引用。
      

  2.   

    应该没问题啊,而且错误提示:
    错误代码 error CS0117: “PagerPro.PagerPro”并不包含“PagerPro”的定义也不是提示DefineStyle没定义,而是说类PagerPro没定义
      

  3.   

    添加引用,就是说你的aspx里使用的是不是最新的dll,项目属性右键可以添加添加引用,这些代码没有问题。
      

  4.   

    我把所有bin里的dll都删掉,从新添加引用,但还是有这个问题。
      

  5.   

    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.
      

  6.   


    Example
    In this example, the Item property is used with an indexer. In C#, you can use a property or an indexer to access a member, but not both. The following sample generates CS0117. Copy Code
    // CS0117_2.cs
    using System;
    using System.Collections;
    class Test
    {
       public static void Main()
       {
          ArrayList al = new ArrayList();
          al.Add( new Test() );
          Console.WriteLine("{0}", al.Item[0]);   // CS0117
          Console.WriteLine("{0}", al[0]);   // OK
       }
    }
    CS0017 also occurs if you use a library written in a language that allows static members in interfaces, and you try to access the static member from C#. Copy Code
    // CS0117_3.jsl
    // compile with: /target:library
    public interface IMyJSharpInterface
    {
       static int MyStaticMember = 0;
       void NonStaticMember();
    }
    The following sample generates CS0117. Copy Code
    // CS0117_4.cs
    // compile with: /reference:CS0117_3.dll
    class MyCSharpClass : IMyJSharpInterface
    {
       public void NonStaticMember() {}   public static void Main()
       {
          IMyJSharpInterface myObj = new MyCSharpClass();
          myObj.NonStaticMember();
          int i = myObj.MyStaticMember;   // CS0117
       }
    }
    ------------------------------
    [From MSDN]
      

  7.   

    错误代码 error CS0117: “PagerPro.PagerPro”并不包含“PagerPro”的定义=======看样子,这与你说的枚举属性 DefineStyle ,并没有直接关系为什么你喜欢将 命名空间与类型名称 取的一样?这是一种不好的命名方式,虽说可以,但会带来不必要的麻烦,有时候不显示用完整名称,编译器无法正确解析,修改下命名空间吧同时,你是否定义了带参数的构造函数,而又没有定义无参的构造函数?