|M| 学习写控件十四贴:200分求:当我的控件里面init时Controls.Add一个验证控件进来,我如何让这个验证控件在页面一开始就是显示出来
本来的的控件是继承 正则验证控件的
因为验证控件默认生成的HTML为: <span id= "ctl02 " style= "color:Red;display:none; "> * </span>
然后我想在网页显示的时候要让这个验证控件显示出来
这是思归老大给的可行
protected override void AddAttributesToRender(HtmlTextWriter writer)
{
base.AddAttributesToRender(writer);
writer.AddAttribute( "style ", " ");
}
后来我又但多了一个控件 这个控件添加多一个验证控件在他里面 幕白兄老大的方法
这个控件是继承System.Web.UI.WebControls.WebControl
protected override void OnInit(EventArgs e)
{
RequiredFieldValidator req = new RequiredFieldValidator();
this.Controls.Add(req);
}
这个时候我没有办法用思归老大给的那个方法来做了
后来只能用
protected override void Render(HtmlTextWriter output)
{
base.Render(output);
output.Write( " <script type= 'text/javascript '> document.getElementById( ' " + reg.ClientID + " ').style.display= ' '; </script> ");
}
这种方法
这样能够得到我要的效果
但是过程感觉不是很好因为这时他生在的HTML是:
<span id= "WebRev1 "> <span id= "ctl02 " style= "color:Cyan;display:none; "> * </span> <span id= "ctl03 " style= "color:Lime;display:none; "> * </span> </span> <script type= 'text/javascript '> document.getElementById( 'ctl03 ').style.display= ' '; </script>
而我想有没有办法让他生成为
<span id= "WebRev1 "> <span id= "ctl02 " style= "color:Cyan;display:none; "> * </span> <span id= "ctl03 " style= "color:Lime; "> * </span> </span>
我要怎么办呢?
我在ASP.NET 和 控件技术区都开了贴,出答出来就到两边接分
谢谢大家
PS:可能大家会说效果出来了就可以写JS也没什么不好,
是的,显然这里写js没什么不好,但是要是我的控件里面添加了N个控件每一个控件都要修改他的N个Style
那这样写在样面中的js会有很多
要是能够在设计的时候像
protected override void AddAttributesToRender(HtmlTextWriter writer)
{
base.AddAttributesToRender(writer);
writer.AddAttribute( "style ", " ");
}
这样给他去掉的话那就太OK了
------解决方案--------------------帮顶了
------解决方案--------------------up
------解决方案--------------------
------解决方案--------------------帮顶
------解决方案--------------------原来在这里等着.