如何更改用户控件中的默认tagprefix

时间:2012-04-18 01:31:21

标签: asp.net

将Web用户控件拖到设计图面上时,它会自动指定tagprefix = uc1。

是否有人知道如何更改所有Web用户控件的默认tagprefix 你拖到一个网络表单?

2 个答案:

答案 0 :(得分:2)

Adding User Controls to a Web Forms Page

您必须Register以下Page directive下面的<%@ Register TagPrefix="Guest" TagName="GuestExample" Src="~/YourControl.ascx" %> 控件。

TagPrefix

然后根据您的要求更改TagName<Guest:GuestExample ID="ID" runat="server" />

实施例

<?xml version="1.0"?>
<configuration>
  <system.web>
    <pages>
      <controls>
        <add tagPrefix="Guest" src="~/YourControl.ascx" tagName="GuestExample"/>
      </controls>
    </pages>
  </system.web>
</configuration>

enter image description here


  

不要在所有页面上复制它们,只需声明一次即可   在新页面 - &gt;控件部分与web.config文件   你的申请:

{{1}}

答案 1 :(得分:2)

实际上,这可以使用Assembly-Level属性TagPrefix来实现。

<Assembly: TagPrefix("MyCompany.Web", "SomeFancyTagPrefix")> 

Public Class MyCustomControl
    Inherits WebControl

        'class implementation

End Class

第一个参数是控件的命名空间,第二个参数是您喜欢的标记前缀。

将自定义控件拖放到页面上时的结果:

<%@ Page Language="vb" AutoEventWireup="false" CodeBehind="WebForm1.aspx.vb" Inherits="MyCompany.Web.WebForm1" %>

<%@ Register Assembly="My Company" Namespace="MyCompany.Web" TagPrefix="SomeFancyTagPrefix" %>

<!DOCTYPE html>

<html>
<head runat="server">
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <SomeFancyTagPrefix:MyCustomControl ID="MyCustomControl1" runat="server">
        </SomeFancyTagPrefix:MyCustomControl>
    </div>
    </form>
</body>
</html>