问题描述
<%@ControlLanguage="C#"AutoEventWireup="true"CodeFile="WebUserControl.ascx.cs"Inherits="WebUserControl"%>正常的control指令如上,我想在上面指令中增加一个属性ControlMasterPage,不知有人研究过没有,非常想知道如何实现?
解决方案
解决方案二:
顶一下!
解决方案三:
?
解决方案四:
再顶!
解决方案五:
你可以为WebUserControl类定义增加一个Attribute。
解决方案六:
例如,你可以首先定义一个Attribue:publicclassControlMasterPage{publicstringName{get;set;}publicControlMasterPage(stringname){this.Name=name;}}然后,你的页面上的代码就可以使用它:varx=this.GetType().GetCustomAttributes(typeof(ControlMasterPage),true);if(x.length!=0){varNameOfControlMasterPage=((ControlMasterPage)x[0]).Name;.......
解决方案七:
不是我想要的那个意思。我定义了一个属性ControlMasterPage,和page中MasterPageFile属性一样,动态修改这个值得时候,需要在OnInit之前的事件赋值,才能起作用。所以非常不方便,我想直接修改ascx页面就能实现control的页面样式和布局的修改,就想page页面直接修改aspx页面一样。但是没有找到好办法。
解决方案八:
不明白题意
解决方案九:
[AttributeUsage(Class)]publicclassControlMasterPage:Attribute{......上面写的不正确。引用6楼wenqiangyang的回复:
不是我想要的那个意思。我定义了一个属性ControlMasterPage,和page中MasterPageFile属性一样,动态修改这个值得时候,需要在OnInit之前的事件赋值,才能起作用。所以非常不方便,我想直接修改ascx页面就能实现control的页面样式和布局的修改,就想page页面直接修改aspx页面一样。但是没有找到好办法。
那么你只要给你的WebUserControl类增加一个publicstring属性,在使用这个ascx的地方可以直接属性参数,就跟普通的控件属性一样。至少对于vs2008的ide支持用户控件属性设计。
解决方案十:
普通WebUserControl类的属性,在ascx页面赋值,在控件load时加载时有用,在OnInit的时候不起作用,这个属性只有也page得MasterPageFile属性一样,只有在OnInit的才有用,page的是定义在<%page指令集中的。