一.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的设计时运行抱有一丝恐惧。忘您能给予解惑,感激不尽.