Ich habe ein benutzerdefiniertes Steuerelement erstellt, das von einem Literal-Steuerelement erbt. Wenn ich versuche, mein Steuerelement auf einer Seite zu verwenden, wird ein Analysefehler ausgelöst. Ich habe dasBenutzerdefiniertes ASP.NET-Steuerelement - Unbekannter Server-Tag
<configuration>
<system.web>
<pages>
<controls>
<add tagPrefix="one" namespace="myApplication.Controls"/>
</controls>
</pages>
</system.web>
</configuration>
meiner web.config hinzugefügt Und ich habe diese
<%@ register namespace="myApplication.Controls" tagprefix="one" %>
Keines dieser behoben haben, das Problem zu meiner Seite hinzugefügt. Ich habe eine externe Assembly mit einigen benutzerdefinierten Steuerelementen, die in meinem Projekt problemlos funktionieren. Als Problemumgehung möchte ich mein benutzerdefiniertes Steuerelement in die externe Bibliothek verschieben, wenn es keine einfache Lösung gibt.
--edit
Hier ist der Seitencode.
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="SignUp.ascx.cs" Inherits="myApplication.Controls.SignUp" %>
<%@ register namespace="myApplication.Controls" tagprefix="one" %>
<div class="in">
<span>
<one:resourceliteral id="lblFirstname" runat="server" resourcekey="FirstName" resourceresolver="ResourceStringResolver.GetResourceString">
</one:resourceliteral>
</span>
<div>
<pl:textbox id="txtFirstName" runat="server"></pl:textbox>
</div>
</div>
Und hier ist der Code für meine eigentliche Steuerung
namespace myApplication.Controls
{
public class ResourceLiteral : Literal
{
private ResourceManager rm;
public delegate string dResourceResolver(string label, eLanguage language);
public event dResourceResolver ResourceResolver;
public string ResourceKey { get; set; }
public object DataSource { get; set; }
private eLanguage _Language = eLanguage.ENUS;
public eLanguage Language
{
get { return _Language; }
set { _Language = value; }
}
protected override void OnLoad(EventArgs e)
{
base.OnLoad(e);
if (ResourceResolver != null)
Text = ResourceResolver.Invoke(ResourceKey, _Language);
else
{
if(rm != null)
{
Text = rm.GetString(ResourceKey);
}
}
}
public void LoadDataSource(string resource)
{
rm = new ResourceManager(resource, Assembly.GetExecutingAssembly());
}
public void LoadDataSource(Type resource)
{
rm = new ResourceManager(resource);
}
}
}
Wir brauchen den Code, den Sie schreiben, der das eigentliche Steuerelement verwendet =) – zincorp
die Ascx-Seite und der Code sind in einer externen Baugruppe? – jim