欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

把某个asp.net 控件替换成自定义控件的方法

程序员文章站 2024-02-26 13:10:22
功能:可以把某个asp.net 控件 替换成 自定义的控件 pages 的 tagmapping 元素(asp.net 设置架构) 定义一个标记类型的集合,这些标记类型在编...
功能:可以把某个asp.net 控件 替换成 自定义的控件

pages 的 tagmapping 元素(asp.net 设置架构)

定义一个标记类型的集合,这些标记类型在编译时重新映射为其他标记类型。

此元素是 .net framework 2.0 版中的新元素。
复制代码 代码如下:

<pages>
<tagmapping>
<add
tagtype=
"system.web.ui.webcontrols.webparts.webpartmanager"
mappedtagtype=
"microsoft.sharepoint.webpartpartmanager,
msps.web.dll, version='2.0.0.0'"
/>
</tagmapping>
</pages>

前端代码:
复制代码 代码如下:

<form id="form1" runat="server">
<div>
<asp:label id="lb1" runat="server" text="lb"></asp:label>
</div>
</form>

其生成的html如下:
复制代码 代码如下:

<form name="form1" method="post" action="default.aspx" id="form1">
<div>
<input type="hidden" name="__viewstate" id="__viewstate" value="/wepdwullte1odyxmzexnjlkzirgta8ogwnrnqd7v9zkx3zxclan" />
</div>

<div>
<span id="lb1">lb</span>
</div>
</form>

在配置文件的pages节点中加入
复制代码 代码如下:

<tagmapping>
<add tagtype="system.web.ui.webcontrols.label" mappedtagtype="cjq.web.mylabel" />
</tagmapping>

其中自定义控件的代码是
复制代码 代码如下:

namespace cjq.web
{
public class mylabel : system.web.ui.webcontrols.label
{
protected override void rendercontents(system.web.ui.htmltextwriter writer)
{
writer.write("接收:");
base.rendercontents(writer);
}

}
}

其生成的html如下:
复制代码 代码如下:

<form name="form1" method="post" action="default.aspx" id="form1">
<div>
<input type="hidden" name="__viewstate" id="__viewstate" value="/wepdwullte1odyxmzexnjlkzirgta8ogwnrnqd7v9zkx3zxclan" />
</div>

<div>
<span id="lb1">接收:lb</span>
</div>
</form>