J'ai créé un contrôle personnalisé qui hérite du contrôle Literal. Lorsque j'essaie d'utiliser mon contrôle sur une page, une erreur d'analyse syntaxique se produit. J'ai ajouté ceci à mon web.config
<configuration>
<system.web>
<pages>
<controls>
<add tagPrefix="one" namespace="myApplication.Controls"/>
</controls>
</pages>
</system.web>
</configuration>
Et j'ai ajouté ceci à ma page
<%@ register namespace="myApplication.Controls" tagprefix="one" %>
Aucune de ces solutions n'a résolu le problème. J'ai un assemblage externe avec des contrôles personnalisés qui fonctionnent parfaitement dans mon projet. Comme solution de rechange, j'envisage de déplacer mon contrôle personnalisé dans la bibliothèque externe s'il n'y a pas de solution simple.
--edit
Voici le code de la page.
<%@ 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>
Et voici le code de mon contrôle actuel
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 );
}
}
}
0 votes
Nous avons besoin du code que vous écrivez qui utilise le contrôle actuel =)
0 votes
La page ascx et le code sont dans un assemblage externe ?