我在自定义控件中加入了一个枚举属性 public enum PagerPaging :int
    {        /// 不用自定义分页样式
        None=0,        /// 默认自定义分页样式
        Default=1
    } private PagerPaging  _pagingStyle;public PagerPaging PagingStyle
        {
            get { return _pagingStyle; }
            set {  _pagingStyle = value; }
        }编译通过,在控件属性编辑器中能对此属性进行编译。但是只要在控件中设置了此属性,程序运行就报错。不设置此属性就没问题!编译器错误信息: CS0117: “System.Web.UI.WebControls.WebControl”并不包含“PagerPaging”的定义望高手指教

解决方案 »

  1.   

    改成:
    public enum PagerPaging

            None, 
            Default 
    } 然后再webcontrol的tag里写成:PagerPaging="none" or PagerPaging="default" 就行了。
      

  2.   

    MSDN教导我们,不要手动给枚举属性赋确定的值,编译器会自动为它分配值。
      

  3.   

    我的源码如下,多余代码已经删除using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Text;
    using System.Web;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Web.UI.HtmlControls;[assembly: TagPrefix("WebControl", "WebControl")]
    namespace WebControl
    {    [ToolboxData("<{0}:MyGridView runat=server></{0}:MyGridView>")]    public class MyGridView : GridView 
        {
            Dictionary<string, Table> tables;
           private PagerPaging  _pagingStyle;
           
            #region 构造函数
            public MyGridView() 
            {
                tables = new Dictionary<string, Table>();
                
            }
            #endregion       
           [Description("自定义分页样式"), DefaultValue(""), Category("分页")]
            public PagerPaging PagingStyle
            {
                get { return _pagingStyle; }
                set {  _pagingStyle = value; }
            } 
            
        }    #region 自定义分页样式
        public enum PagerPaging :int
        {        /// 不用自定义分页样式
            None,        /// 默认自定义分页样式
            Default
        }
        #endregion
    }