一个简单的自定义控件,如何在一个
之间加入一行字?

webfactory 2005-01-13 09:36:22
新手,麻烦给写段小代码?庥烦写详细点

我想做一个自定义控件,在一个<div></div>之间加入一行文字,比如<div>你好,中国</div>

在控件开头加入
public class myDiv:System.Web.UI.WebControls.Panel ,System.Web.UI.INamingContainer

请问在什么地方处理继承来的Panel,将其中间加入文字
...全文
362 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
llx529 2005-01-20
  • 打赏
  • 举报
回复
路过一下捡分。

[ControlBuilder(typeof(InnerTextLabelControlBuilder)),
ParseChildren(false),
DefaultProperty("Text"),
ToolboxData("<{0}:InnerTextLabel runat=server></{0}:InnerTextLabel>")]
public class InnerTextLabel : System.Web.UI.WebControls.WebControl
{
protected override HtmlTextWriterTag TagKey
{
get
{
return HtmlTextWriterTag.Label;
}
}
[Bindable(true),
Category("Appearance")]
public string Text
{
get
{
string s = (string)ViewState["Text"];
return (s == null)? string.Empty:s;
}
set
{
ViewState["Text"] = value;
}
}
protected override void AddParsedSubObject(object obj)
{
if(obj is LiteralControl)
{
Text = ((LiteralControl)obj).Text;
}
else
{
throw new ArgumentException("。。。。");
}
}
/// <summary>
/// 将此控件呈现给指定的输出参数。
/// </summary>
/// <param name="output"> 要写出到的 HTML 编写器 </param>s
protected override void Render(HtmlTextWriter writer)
{
writer.Write(HttpUtility.HtmlEncode(Text));
}
}
public class InnerTextLabelControlBuilder:ControlBuilder
{
public override bool AllowWhitespaceLiterals()
{
return false;
}
public override bool HtmlDecodeLiterals()
{
return true;
}
}
minghui000 2005-01-16
  • 打赏
  • 举报
回复
protected override void Render(HtmlTextWriter output)
{
output.Write("<div>"+_text+"</div>");
}
webfactory 2005-01-14
  • 打赏
  • 举报
回复
不能把这个output当作字符串,Replace">"一下吗?
xinbuzailiulei 2005-01-14
  • 打赏
  • 举报
回复
up
心情解码 2005-01-14
  • 打赏
  • 举报
回复
up



--
JafyLiu 2005-01-14
  • 打赏
  • 举报
回复
<div id="div1"></div>

div1.innerHTML = "北京";
Truly 2005-01-14
  • 打赏
  • 举报
回复
there is the disassembler of Panel:

public class Panel : WebControl
{
// Methods
public Panel();
protected override void AddAttributesToRender(HtmlTextWriter writer);

// Properties
[WebCategory("Appearance"), Editor("System.Web.UI.Design.ImageUrlEditor, System.Design, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a", typeof(UITypeEditor)), WebSysDescription("Panel_BackImageUrl"), Bindable(true), DefaultValue("")]
public virtual string BackImageUrl { get; set; }
[WebSysDescription("Panel_HorizontalAlign"), DefaultValue(0), WebCategory("Layout"), Bindable(true)]
public virtual HorizontalAlign HorizontalAlign { get; set; }
[WebCategory("Layout"), DefaultValue(true), WebSysDescription("Panel_Wrap"), Bindable(true)]
public virtual bool Wrap { get; set; }
}
xueqs 2005-01-14
  • 打赏
  • 举报
回复
protected override void Render(HtmlTextWriter output)
{
output.Write("<div>北京</div>");
}

这个函数就是用来输出控件外观的
tengjian1981 2005-01-14
  • 打赏
  • 举报
回复
up
FJGoodGood 2005-01-14
  • 打赏
  • 举报
回复

public class MyPanel: System.Web.UI.WebControls.Panel
{
[Browsable[true])
public string Text
{
get { return _text; }
set { _text = value; }
}
private string _text = "";
....
protected override void Render(HtmlTextWriter output)
{
output.Write("<div>"+_text+"</div>");
}
....
}
webfactory 2005-01-14
  • 打赏
  • 举报
回复
??
FJGoodGood 2005-01-13
  • 打赏
  • 举报
回复
同楼上
timeislife 2005-01-13
  • 打赏
  • 举报
回复
protected override void Render(HtmlTextWriter output)
{
output.Write("<div>北京</div>");
}
webfactory 2005-01-13
  • 打赏
  • 举报
回复
我想用继承的这个System.Web.UI.WebControls.Panel(它实际上就是生成一个<div>),用这个(HtmlTextWriter output)来重写一下它生成的内容

62,041

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧