[英]Add Attributes to root HTML Element of a Custom Control
public class CustCtl : WebControl
{
protected override System.Web.UI.HtmlTextWriterTag TagKey
{
get
{
return HtmlTextWriterTag.Div;
}
}
}
使用这个裸骨控制,它会将根元素呈现为Div标记。 但是,如何向该控件将呈现的根HTML元素添加属性...例如样式或id。
谢谢! = d
你可以在OnPreRender活动中做这样的事情
public class CustCtl : WebControl
{
protected override void OnPreRender(EventArgs e)
{
base.OnPreRender(e);
WebControl parent = Parent as WebControl;
if (parent != null)
{
parent.Attributes.Add("key", "value");
}
}
}
如果您有HtmlTextWriter
,则可以在呈现标记之前先添加一些属性。 例如:
public void writeDivWithStyle(HtmlTextWriter writer, string style)
{
writer.AddAttribute(HtmlTextWriterAttribute.Style, style);
writer.RenderBeginTag(HtmlTextWriterTag.Div);
// more code here
writer.RenderEndTag(); // close the DIV
}
你应该可以使用:
CONTROL.Attribute.Add("..")
//不正确的语法
看到这个链接
编辑:样本用法
Control control = this.FindControl("body");
HtmlControl divControl = new HtmlGenericControl("div");
divControl.Attributes.Add("id","myid");
divControl.Attributes.Add("class","myclass");
control.Controls.Add(divControl);
我在查看API时发现了这种方法。
这对我来说效果很好,似乎是最合适的地方。 只是简单地覆盖。
public override void RenderBeginTag(HtmlTextWriter writer)
{
writer.AddAttribute(HtmlTextWriterAttribute.Class, "[^_^]");
base.RenderBeginTag(writer);
}
[编辑,在所有评论之后]简单地说, Attributes.Add("key", "value");
在OnPreRender
方法中工作
我认为最合适的方法或事件是:
protected override void AddAttributesToRender(HtmlTextWriter writer)
{
writer.AddAttribute("Key", "Value");
base.AddAttributesToRender(writer);
}
检查msdn 。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.