
ASP.NET服务器控件的嵌套问题
自定义了两个服务器控件,现在的需要时把其中一个嵌入到另一个中。但无论如何都没法实现,不知道怎么的;如果子控件在父控件的Render事件中使用RenderControl(w...
自定义了两个服务器控件,现在的需要时把其中一个嵌入到另一个中。
但无论如何都没法实现,不知道怎么的;
如果子控件在父控件的 Render 事件中使用 RenderControl(write);会立即报错我猜是不是子控件ClientID为空的原因啊,该属性为只读,我无法赋值,而且我要实现的效果是子控件并不显示在设计页面和设计属性页面上,也就是只能后台对其属性进行设置(后台指的是服务器控件的执行程序,不是页面开发后台),不能再父控件的属性里面进行修改(不允许用户操作,用户指的是开发页面人员)。
反正就是父控件需要这子控件然后组成一个控件,子控件封装好了,如何在父控件的代码中写入相关程序来载入子控件,然后组合成一个新控件,但控件使用人员不能设置子控件的属性,也完全不知道还有个子控件。
我怕有的人误解我的意思,再说明白一点
就想当一现有一个微软的ASP.NET标准BUTTON控件,然后我自定义了一个控件,控件里面类似一个容器,里面需要一个按钮,但我又不想自己再去编辑,因此想直接在控件中能用BUTTON就好了。
当然,上面只是比喻,而我需要的引用的控件基本是以输出看不见的代码为主(隐藏的HTML和JS代码,本来就是个辅助控件)。
还有就是,上述的子控件是个辅助的服务器控件,如果他单独运行(和上面父控件无关)的话,是需要绑定其他控件的,就类似于TIP一样的控件,它的目的就是为别的控件提供提示等,要是这样的话,有什么办法能在他的属性里面能够一个列表列出当前设计页面内的所有控件,然后让开发人员选择用哪一个。当然也可以在当前设计页面上的所有控件增加一个属性,属性里面可以选择为这个控件。
自己解决了,原来是子控件的ID木有,且PAGE属性为NULL,而且要CONTROLS.ADD一下否则不激活子控件的事件。不过最后一个问题还是不知道怎么解决,就是给其他控件添加属性(只要拖到页面上就给页面上其他控件多一个属性。) 展开
但无论如何都没法实现,不知道怎么的;
如果子控件在父控件的 Render 事件中使用 RenderControl(write);会立即报错我猜是不是子控件ClientID为空的原因啊,该属性为只读,我无法赋值,而且我要实现的效果是子控件并不显示在设计页面和设计属性页面上,也就是只能后台对其属性进行设置(后台指的是服务器控件的执行程序,不是页面开发后台),不能再父控件的属性里面进行修改(不允许用户操作,用户指的是开发页面人员)。
反正就是父控件需要这子控件然后组成一个控件,子控件封装好了,如何在父控件的代码中写入相关程序来载入子控件,然后组合成一个新控件,但控件使用人员不能设置子控件的属性,也完全不知道还有个子控件。
我怕有的人误解我的意思,再说明白一点
就想当一现有一个微软的ASP.NET标准BUTTON控件,然后我自定义了一个控件,控件里面类似一个容器,里面需要一个按钮,但我又不想自己再去编辑,因此想直接在控件中能用BUTTON就好了。
当然,上面只是比喻,而我需要的引用的控件基本是以输出看不见的代码为主(隐藏的HTML和JS代码,本来就是个辅助控件)。
还有就是,上述的子控件是个辅助的服务器控件,如果他单独运行(和上面父控件无关)的话,是需要绑定其他控件的,就类似于TIP一样的控件,它的目的就是为别的控件提供提示等,要是这样的话,有什么办法能在他的属性里面能够一个列表列出当前设计页面内的所有控件,然后让开发人员选择用哪一个。当然也可以在当前设计页面上的所有控件增加一个属性,属性里面可以选择为这个控件。
自己解决了,原来是子控件的ID木有,且PAGE属性为NULL,而且要CONTROLS.ADD一下否则不激活子控件的事件。不过最后一个问题还是不知道怎么解决,就是给其他控件添加属性(只要拖到页面上就给页面上其他控件多一个属性。) 展开
展开全部
做一个用户控件
可以添加自定义属性
具体可以查阅MSDN相关内容
可以添加自定义属性
具体可以查阅MSDN相关内容
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询