Question

Je le code suivant dans ma page ASPX:

 <asp:Button runat="server" ID="myButton" Text="hello" />

et cela dans mon code derrière:

protected void Page_Load(object sender, EventArgs e)
{ 
    myButton.Text = "bye"; 
}

Pour une raison quelconque l'IntelliSense ramasse l'id « myButton » dans le code derrière mais quand il compile dit

  

il ne peut pas construire parce qu'il ne reconnaît pas!

Ma page est une page ASPX par défaut qui utilise une page principale, le bouton est à l'intérieur d'un contrôle de contenu et tout est configuré pour fonctionner au serveur correctement, la page se exécute et affiche bien, sauf pour ce bouton problème de résolution!

Toutes les idées?

Était-ce utile?

La solution

Sons comme votre fichier de concepteur (PageName.designer.cs) a obtenu un peu foiré. Je vais essayer de supprimer le bouton de votre page et l'ajouter à nouveau.

Autres conseils

Si le bouton est à l'intérieur d'un conteneur de nommage comme un répéteur vous ne serez pas en mesure de l'utiliser comme ça. , Vous avez besoin au lieu de faire quelque chose comme ceci:

Button myButton = (Button)Container.FindControl("myButton");
myButton.Text = "bye";

Je l'ai rencontré le même problème, d'abord, je tentais de comprendre ce qui clochait dans mon dossier designer.cs. Mais après avoir réalisé que mon balisage WebForm j'utilisais un copier / coller à partir du défaut formulaire en ligne. Le problème était donc, comme Protector ne dit assurez-vous de vérifier la propriété hériterons @Page:

<%@ Page Title="Home Page" Language="C#" MasterPageFile="~/Site.master" AutoEventWireup="true"
    CodeBehind="Default.aspx.cs" Inherits="InputValidation._Default" %>

J'ai trouvé une solution simple pour ce cas.

Il suffit d'ouvrir le fichier de concepteur et ajouter une ligne qui correspond à votre contrôle de l'interface utilisateur.

protected global::System.Web.UI.WebControls.Button myButton;

myButton est Id de votre contrôle.

Je fait face à ce problème et j'ai remarqué que les fichiers Designer.cs ont été exclus de mon projet.
essayez de chercher les inclure à nouveau votre projet.
bonne chance

Je sais que ce problème est résolu, mais quand j'eu un problème similaire, quand je convertir Application Web c # à VB - i résolu ce problème en ajoutant X Namespace / End Namespace

J'ai eu le même problème aujourd'hui et dans mon cas, la solution est:

  • Aller à: C:\Users\lenovo\AppData\Local\Temp\Temporary ASP.NET Files\
  • Supprimez le dossier Temporary ASP.NET Files.

J'ai rencontré ce problème plusieurs fois. Parfois, il classnames dans le concepteur et le code derrière ne correspondent pas. D'autres fois, il est l'espace de noms ne correspondant pas. D'autres fois, la page concepteur ne soit pas la variable membre généré.

Comme mentionné mdresser, la régénération du fichier concepteur peut très bien prendre soin du problème. Assurez-vous que vous enregistrez la page ASPX premier.

Assurez-vous que vous avez pas de fichiers qui tentent accidentellement d'hériter ou de définir la même classe (partielle). Ces fichiers peuvent être sans aucun rapport à l'endroit où l'erreur est apparue en fait!

Il a été depuis longtemps. Je faisais face à Buuuut ce même problème aujourd'hui, il semble donc jamais trop tard. Pour moi, ce qui se passait cause de l'TextBox était dans une forme nonnamed. Ensuite, je mets un identifiant à la forme et je pouvais acess le TextBox comme ceci: idForm.idTextBox.ToString(). Je suppose que ce qui va arriver est la même chose avec un button.

Le problème est que vous pourriez avoir plusieurs fichiers ASPX avec CodeFile points directive page à un même fichier behind. Il attend le même contrôle de existe dans tout le fichier ASPX lié à même code derrière et lancer ainsi une erreur de compilation.

Vérifier l'espace de noms dans les trois fichiers . Parfois, il y a une différence entre le nom d'espace de noms dans le fichier designer.cs et les deux autres fichiers. Assurez-vous de vérifier que match nom de l'espace de nom dans les trois fichiers

Il suffit de modifier la propriété Hériter sous étiquette page

    <% Page inherit = "Project_Name.otherform" 

changer à

    <% Page inherit = "Project_Name.YourForm"

Et vous verrez dans form2.aspx.desginer.cs le nom de classe est également modifiée et corrigée.

Let Me Explain: Disons que vous avez 2 formulaires Web test1.aspx et test2.aspx. Vous avez copié un morceau de code de test1.aspx à test2.aspx, votre fichier test2.aspx utilisera

    <% Page inherit = "Project_Name.test1"

qui était censé être comme:

    <% Page inherit = "Project_Name.test2"

en raison de laquelle votre test2.aspx.designer.cs nom de classe sera changé automatiquement même que test1.aspx.designer.cs car il est un système de fichiers généré et vous ne pourrez pas utiliser vos identifiants de contrôle.

Après la correction de votre propriété Hériter, enregistrez et test2.aspx.designer.cs Ouvert à vérifier et vous verrez en ce que le nom de la classe est également modifiée. ce sera comme:

    public partial class test1
    {
     ...

Changement pour

    public partial class test2
    {
    ... 

Merci moi plus tard;)

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top