none
创建asp.net服务器控件时出现错误 RRS feed

  • 问题

  • 我要写一个数据源控件acDataSource,是不可见控件,并添加智能标记。控件的功能部分没有问题,错误出现在智能标记上。

    将控件拖放到页面创建该对象时,提示

    “呈现控件时出错。 发生了未经处理的异常。 类型为‘AcDataSource’的控件是非可视控件,不支持设置Visible属性。”
    下面是智能标记的代码,大神帮帮忙看看是什么问题。
    同样的代码用在可视控件上没有问题,因为是从MSDN上Copy下来的

    class AcDataSourceDesigner : ControlDesigner
        {
            private DesignerActionListCollection actionLists;
    
            public override DesignerActionListCollection ActionLists
            {
                get
                {
                    if (null == actionLists)
                    {
                        actionLists = new DesignerActionListCollection();
                        actionLists.Add(new AcDataSourceActionList(this.Component));
                    }
                    return actionLists;
                }
            }
        }
        public class AcDataSourceActionList : DesignerActionList
        {
            private AcDataSource parent;
    
            public AcDataSourceActionList(IComponent component)
                : base(component)
            {
                this.parent = component as AcDataSource;
            }
    
            public override DesignerActionItemCollection GetSortedActionItems()
            {
                DesignerActionItemCollection items = new DesignerActionItemCollection();
                items.Add(new DesignerActionMethodItem(this, "ConfigureDataSource", "配置数据源...", "Appearance", "配置数据源的设置."));
                return items;
            }
    
            public void ConfigureDataSource()
            {
                Form frm = new Form();
                frm.Show();
            }
    
        }
    

    2015年6月23日 8:05

答案

  • 参考地址在这里:https://msdn.microsoft.com/zh-cn/library/ms171829(v=vs.80).aspx

    ConfigureDataSource()函数实在设计时配置数据源控件的,我采用的方法是弹出一个对话框。这个对话框我还没有设计,所以先用Form来代替以验证前面代码的正确性。

    这个问题我以解决,因为该控件继承自不可视的DataSourceControl,对Visible属性赋值时便会产生上述异常,所以对该异常catch一下就OK啦

    • 已建议为答案 Barry Wang 2015年7月1日 2:58
    • 已标记为答案 Caillen 2015年7月1日 3:01
    2015年6月29日 6:46

全部回复

  • 你好,

    为什么ASP.NET的控件里会出现以下的代码:

    Form frm = new Form();
                frm.Show();
    

    另外你参考的是哪里?



    Barry
    We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.
    Click HERE to participate the survey.

    2015年6月24日 6:27
  • 参考地址在这里:https://msdn.microsoft.com/zh-cn/library/ms171829(v=vs.80).aspx

    ConfigureDataSource()函数实在设计时配置数据源控件的,我采用的方法是弹出一个对话框。这个对话框我还没有设计,所以先用Form来代替以验证前面代码的正确性。

    这个问题我以解决,因为该控件继承自不可视的DataSourceControl,对Visible属性赋值时便会产生上述异常,所以对该异常catch一下就OK啦

    • 已建议为答案 Barry Wang 2015年7月1日 2:58
    • 已标记为答案 Caillen 2015年7月1日 3:01
    2015年6月29日 6:46