我正在尝试继承下拉列表。我不想编译它并放入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即可。
有什么问题?
答案 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>