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

时间:2022-08-29 15:24:45

功能:可以把某个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>