浏览:322 2008-07-18 11:43 来自 父辈的旗帜      :

一.UrlProperty的问题,因为我想为一个属性添加对话框选取文件服务,代码如下:

        [Category("Behavior")]
        [Localizable(true)]
        [Description("用户点击选项卡时跳转的页面")]
        [UrlProperty("*.aspx")]
        public string NavigateUrl
        {
            get
            {
                String s = (String)ViewState["NavigateUrl"];
                return ((s == null) ? String.Empty : s);
            }

            set
            {
                ViewState["NavigateUrl"] = value;
            }
        }

但产生了以下问题:

1.在设计视图下不能弹出文件选择窗口

2.在源代码视图下,弹出了智能感应的文件列表,但确显示了所有文件,"*.aspx"没有起作用.

 

二.ActivedIndexConverter的问题

这个转换器实现类似于您那个SelectedIndexConverter的功能,即为当前选中的选项卡索引提供独占的标准值服务,代码如下:

public class ActivedIndexConverter:Int32Converter
    {
        public override bool GetStandardValuesExclusive(ITypeDescriptorContext context)
        {
            return true;
        }

        public override bool GetPropertiesSupported(ITypeDescriptorContext context)
        {
            return true;
        }

        public override TypeConverter.StandardValuesCollection GetStandardValues(ITypeDescriptorContext context)
        {
            //throw new Exception("1");
            if (context != null)
            {
                SlideTab ctrl = context.Instance as SlideTab;
                if (ctrl != null)
                {
                    List<int> values = new List<int>(ctrl.Controls.Count);
                    for (int i = 0; i < ctrl.Controls.Count; i++)
                        values.Add(i);
                   
                    return new StandardValuesCollection(values);
                }
            }

            return base.GetStandardValues(context);
        }
    }

属性定义如下:

[Category("Behavior")]
        [DefaultValue(0)]
        [Localizable(true)]
        [Description("被激活选项卡的索引")]
        [TypeConverter(typeof(ActivedIndexConverter))]
        public int ActivedIndex
        {
            get
            {
                return ((ViewState["ActivedIndex"] == null) ? 0
                    : Convert.ToInt32(ViewState["ActivedIndex"]));
            }
            set
            {
                ViewState["ActivedIndex"] = value;
            }

        }

出现了以下问题:

在ActivedIndex的属性编辑框中未出现预期的下拉标准值列表,但其左边出现了一个小加号("[+]ActivedIndex",类似于"[+]Font"),点了小加号小加号即消失.

 

我尝试许久都未解决,感觉很挫败,对ASP.NET的设计时运行抱有一丝恐惧。忘您能给予解惑,感激不尽.

收藏 楼主
  3个月前 【组长】 Lyn      :
String s = (String)ViewState["NavigateUrl"];
这个语句不严谨,如果ViewState["NavigateUrl"]为空,那么(string)操作会出异常。
属性窗格要出选择URL界面,加上[Editor(typeof(UrlEditor),typeof(UITypeEditor))]
1楼 回到顶楼 

注册用户登录后才能回复,登录注册
> 返回“道不远人”


其他话题

相关内容

相关链接
1 36875