随便写的一个组件。
现在我想修改他在设计的时候产生的标签前缀(如:<Asp:button></Asp:button>里的Asp)。
using System;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Text;
using System.ComponentModel;
[assembly:TagPrefix("C.Asp.Net.Components","CNet")]
namespace C.Asp.Net.Components
{
/// <summary>
/// RegexTextBox 的摘要说明。
/// </summary>
/// 
[Designer(typeof(C.Asp.Net.Components.TextBoxDesigners)),
ToolboxData("<{0}:RegexTextBox runat=server></{0}:RegexTextBox>")
]
public class RegexTextBox : TextBox
{ private string getScript()
{
string script = "<script language=\"javascript1.2\">\n";
script +="function RegexTextBox_Keypress_Handler(ctrl){\n";
script +="\talert(event.keyCode);\n}\n</script>";
return script; } protected override void AddAttributesToRender(HtmlTextWriter writer)
{
base.AddAttributesToRender (writer); StringBuilder sb = new StringBuilder(); sb.AppendFormat("RegexTextBox_Keypress_Handler({0})",this.ClientID); writer.AddAttribute("onkeypress",sb.ToString());
} protected override void OnPreRender(EventArgs e)
{
base.OnPreRender (e); Page.RegisterClientScriptBlock("RegexTextBox_keypress",getScript());
}
}
}
现在我的组件在设计时产生的代码:
<cc1:RegexTextBox id="RegexTextBox1" style="Z-INDEX: 101; LEFT: 336px; POSITION: absolute; TOP: 176px"runat="server"></cc1:RegexTextBox>我想把替换产生代码里的:cc1 部分,请问怎么修改我的代码???

解决方案 »

  1.   

    <%@ Register TagPrefix="" TagName="" Src="" %>
     .NET Framework 常规参考   @ Register请参见
    ASP.NET Web 窗体语法 | Web 窗体用户控件 | 指令语法
    将别名与命名空间及类名关联起来,以便在自定义服务器控件语法中使用简明的表示法。<%@ Register tagprefix="tagprefix" Namespace="namespace" Assembly="assembly" %>
    <%@ Register tagprefix="tagprefix" Tagname="tagname" Src="pathname" %>
    属性
    tagprefix 
    与命名空间关联的别名。 
    tagname 
    与类关联的别名。 
    Namespace 
    与 tagprefix 关联的命名空间。 
    Src 
    与 tagprefix:tagname 对关联的声明性用户控件文件的位置(相对的或绝对的)。 
    Assembly 
    与 tagprefix 关联的命名空间所驻留的程序集。 
    注意   程序集名称不包括文件扩展名。
    备注
    如果在页或用户控件中包含 @ Register 指令,则可以使用声明性自定义服务器控件语法为自定义服务器控件或用户控件布局。在以下情况中,使用 @ Register 指令。 通过声明将自定义 ASP.NET 服务器控件添加到页或用户控件。 
    将声明性用户控件添加到页或用户控件。 
    对于声明性用户控件,请使用 tagname、tagprefix 和 src 属性。在页中声明控件时,前两个属性总是以冒号分隔对 (tagprefix:tagname) 的形式一起使用。src 属性值既可以是从应用程序根目录到用户控件源文件的相对路径,也可以是绝对路径。为方便使用,建议使用相对路径。例如,假设将所有应用程序用户控件文件存储在应用程序根目录的子目录 \usercontrol 下。要包括 usercontrol1.ascx 文件中的用户控件,请在 @ Register 指令中包含以下内容:Src="~\usercontrol\usercontrol1.ascx" 
    代字号 (~) 表示应用程序的根目录。注意   如果用户控件和包含该控件的页位于同一目录中,则 src 属性值应该为 .ascx 文件的文件名和扩展名。
    当包含已经编译为 .dll 文件供应用程序使用的自定义服务器控件时,请将 tagprefix 与 Assembly 和 Namespace 属性一起使用。如果没有包含 Namespace 属性,或者给该属性分配了一个空字符串,则会出现分析器错误。警告   在开发自定义服务器控件时,必须将其包含在命名空间中。如果没有包含在命名空间中,则将无法从 ASP.NET 页中访问该控件。有关开发自定义 ASP.NET 服务器控件的更多信息,请参见开发简单的 ASP.NET 服务器控件。
    示例
    以下代码片段使用 @ Register 指令声明服务器控件和用户控件的 tagprefix 和 tagname 别名。第一条指令将 MyTag 别名声明为驻留在 MyCompany:MyNameSpace 命名空间中的所有控件的标记前缀。第二条指令将 Acme:AdRotator 声明为文件 Adrotator.acscx 中用户控件的 tagprefix:tagname 对。然后,在窗体的自定义服务器控件语法中使用别名,为每个服务器控件插入一个实例。<%@ Register Tagprefix="MyTag" Namespace="MyCompany:MyNameSpace" Assembly="MyAssembly" %>
    <%@ Register Tagprefix="Acme" Tagname="AdRotator" Src="AdRotator.ascx" %>
    <HTML>
     <body>
       <form runat="server">
          <MyTag:MyControl id="Control1" runat="server" /><BR>
          <Acme:AdRotator file="myads.xml" runat="server" />
       </form>
     </body>
    </HTML>
    请参见
    ASP.NET Web 窗体语法 | Web 窗体用户控件 | 指令语法发送有关此主题的意见 &copy; 2001-2002 Microsoft Corporation。保留所有权利。 
      

  2.   

    ms-help://MS.MSDNQTR.2003FEB.2052/cpgenref/html/cpconregister.htm
      

  3.   

    <%@ Register Tagprefix="MyTag" Namespace="MyCompany:MyNameSpace" Assembly="MyAssembly" %>
      

  4.   

    [assembly:TagPrefix("C.Asp.Net.Components","CNet")]
    [ToolboxData("<{0}:RegexTextBox runat=server></{0}:RegexTextBox>")]可以参考我的AspNetPager控件的源代码:http://www.webdiyer.com
      

  5.   

    to:webdiyer(陕北吴旗娃) 请问我的代码里有问题吗?为什么就是改不了前缀名??另外:你给的网站我打不开。如果方便的话,请代码发给我。E-mail:[email protected] 谢谢