Asp.Net组件开发中的标签前缀问题

czhenq 2004-11-22 01:40:40
随便写的一个组件。
现在我想修改他在设计的时候产生的标签前缀(如:<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 部分,请问怎么修改我的代码???
...全文
177 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
czhenq 2004-11-22
  • 打赏
  • 举报
回复
to:webdiyer(陕北吴旗娃)

请问我的代码里有问题吗?为什么就是改不了前缀名??

另外:你给的网站我打不开。如果方便的话,请代码发给我。

E-mail:czhenq@163.com 谢谢
webdiyer 2004-11-22
  • 打赏
  • 举报
回复
[assembly:TagPrefix("C.Asp.Net.Components","CNet")]
[ToolboxData("<{0}:RegexTextBox runat=server></{0}:RegexTextBox>")]

可以参考我的AspNetPager控件的源代码:http://www.webdiyer.com
czhenq 2004-11-22
  • 打赏
  • 举报
回复
up
czhenq 2004-11-22
  • 打赏
  • 举报
回复
up
czhenq 2004-11-22
  • 打赏
  • 举报
回复
up
ncowboy 2004-11-22
  • 打赏
  • 举报
回复
<%@ Register Tagprefix="MyTag" Namespace="MyCompany:MyNameSpace" Assembly="MyAssembly" %>
learner01 2004-11-22
  • 打赏
  • 举报
回复
up
czhenq 2004-11-22
  • 打赏
  • 举报
回复
up
czhenq 2004-11-22
  • 打赏
  • 举报
回复
手动修改的办法我知道

我想知道如何自定义标签前缀
ncowboy 2004-11-22
  • 打赏
  • 举报
回复
ms-help://MS.MSDNQTR.2003FEB.2052/cpgenref/html/cpconregister.htm
ncowboy 2004-11-22
  • 打赏
  • 举报
回复
<%@ 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 窗体用户控件 | 指令语法

发送有关此主题的意见

© 2001-2002 Microsoft Corporation。保留所有权利。


62,046

社区成员

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

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

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

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