0

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

代码隐藏非常基本:

.cs 页面:

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

        }
    }
}

.ascx 页面

<%@ 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。

有什么问题?

4

1 回答 1

0

以下解决了这个问题:

如何在 ASP.NET 页面上使用子类控件?

我使用 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>
于 2013-10-19T14:07:52.843 回答