Ableiten Benutzer-Steuerung von benutzerdefinierten Benutzer-control-Basisklasse
Ich möchte erstellen Sie eine Benutzer-Steuerelement -DerivedUserControl.ascx
, ergibt sich eine andere form user control BaseUserControl.ascx
. Die Basis-user-Steuerelement stammt aus System.Web.UI.UserControl
als erforderlich. Diese Benutzer-Steuerelemente definiert sind, die in verschiedenen Ordnern. Denn ich bin mit Visual Studio 2010, Web-Site-Projekt (ich bin nicht in der Lage, wechseln Sie zu Web-Anwendung-Projekt), diese Bedienelemente sind nicht definiert in einem namespace.
Mein problem ist, dass wenn ich versuche zu kompilieren Sie das Projekt der Basisklasse von der abgeleiteten Benutzer-Steuerelement kann nicht aufgelöst werden (offenbar, weil der compiler nicht weiß, was .ascx-Datei definiert die Basisklasse). Gibt es eine Möglichkeit dieses Problem zu beheben?
Ich habe alles versucht, ich könnte mir vorstellen, ohne Erfolg. Jegliche Hilfe würde sehr geschätzt werden.
BaseUserControl.ascx
<%@ Control Language="C#" AutoEventWireup="true" CodeFile="BaseUserControl.ascx.cs" Inherits="BaseUserControl" %>
BaseUserControl.ascx.cs
public partial class BaseUserControl : System.Web.UI.UserControl
{
protected void Page_Load(object sender, EventArgs e)
{
}
}
DerivedUserControl.ascx
<%@ Control Language="C#" AutoEventWireup="true" CodeFile="DerivedUserControl.ascx.cs" Inherits="DerivedUserControl" %>
DerivedUserControl.ascx.cs
public partial class DerivedUserControl : BaseUserControl
{
protected void Page_Load(object sender, EventArgs e)
{
}
}
Fehler
The type or namespace name 'BaseUserControl' could not be found
Du musst angemeldet sein, um einen Kommentar abzugeben.
Bei der Verwendung von ASP.NET Web-Site (als adaptiert, um ein Web-Projekt), die Sie brauchen, um hinzuzufügen,
<@Reference>
element, um Ihre DerivedUserControl.ascx.MSDN-es...
<%@ Reference VirtualPath="~/FolderName1/BaseUserControl.ascx" %>
Sobald Sie das getan haben, können Sie auf es wie so
Ordnername1, wo ist der Ordner, Ihre BaseUserControl ist.
ASP.base_baseusercontrol_ascx
.base
ist der name des Ordners, der BaseUserControl.ascx lebt.Erstellen, der eine reguläre Klasse/.cs für Ihre Basis-Klasse aufgerufen
BaseUserControl.cs
:Das problem scheint zu sein, dass die DerivedUserControl.ascx keinen Zugriff auf die DLL mit der BaseUserControl. Stellen Sie sicher, dass Sie fügen Sie einen Verweis auf die dll, und haben lokale Kopie = true.
Diese nicht kompilieren:
Diese nicht kompilieren:
So ziemlich fügen Sie den Namen des namespace + Punkt + den Namen deiner Datenbank-Klasse.
Viel Glück!