没有 DLL 的自定义 Web 控件

本文关键字:Web 控件 自定义 DLL 没有 | 更新日期: 2023-09-27 18:34:57

我正在尝试继承一个下拉列表。我不想编译它并放入 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。

怎么了?

没有 DLL 的自定义 Web 控件

下面解决了这个问题:

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

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

网络.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>