没有DLL的自定义Web控件

时间:2013-10-12 12:25:10

标签: c# asp.net dll custom-controls ascx

我正在尝试继承下拉列表。我不想编译它并放入DLL。我想从同一个项目中引用它,该组件将仅由另外两个页面使用。

代码隐藏非常基础:

.cs页面

namespace UNS
{
    public partial class UDropDown : DropDownList
    {
        protected void Page_Load(object sender, EventArgs e)
        {

        }
    }
}

.ascx page

<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="UDropDownList.ascx.cs" Inherits="UNS.UDropDown" %>

我想通过注册它来在另一个.aspx页面中引用它:

.aspx页面

<%@ Register Src="~/UDropDownList.ascx" TagPrefix="UTP" TagName="UTN" %>

问题是,当我想把它放在页面上时,如果我写

<UTP: ...  

我无法获得自动完成选项等。它不会出现。

但我可以在其他 .cs 页面中引用它,只需输入UDropDown即可。

有什么问题?

1 个答案:

答案 0 :(得分:0)

以下解决了这个问题:

How to use a Subclassed Control on an ASP.NET Page?

我使用web-config注册我的控件。

<强>的web.config

<pages theme="UTheme">
  <controls>
    <add tagPrefix="UTP" namespace="UNS" assembly="UNS" />
  </controls>
</pages>

创建了一个新类,而不是部分类:

<强> UDropDownList

namespace UNS
{
    public class UDropDownList : DropDownList
    {
    }
}

.aspx页面上,请参考:

<UTP:UDropDownList runat="server" ID="dd" runat="server"
                ClientIDMode="Static" AutoPostBack="false">
</UTP:UDropDownList>