Asp.net les contrôles ne sont pas accessibles dans le code derrière
J'ai un projet qui a déjà été construit par quelqu'un d'autre. Lorsque j'essaie d'ajouter un nouveau contrôle à la page, je ne peux pas y accéder dans le code derrière. Quand j'essaye de l'ouvrir il y a un message d'erreur indiquant que le Contrôle n'est pas défini dans le contexte actuel.
<%@ Page Language="C#" MasterPageFile="~/HRMS.Master" AutoEventWireup="true" CodeBehind="manageEmployee.aspx.cs" Inherits="HRMS.manageEmployee" Title="Untitled Page" %>
<%@ Register Assembly="eWorld.UI" Namespace="eWorld.UI" TagPrefix="ew" %>
<%@ Register assembly="AjaxControlToolkit" namespace="AjaxControlToolkit" tagprefix="cc1" %>
<asp:Content ID="Content1" ContentPlaceHolderID="head" runat="server">
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="server">
<script type="text/javascript">
document.getElementById("employee").setAttribute("class", "selected");
</script>
<!--OPEN CONTENT DIV-->
<asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>
<!-- Only this area is updated on PostBack -->
<div class="manage_employ">
<ul>
<li style="margin-top:10px; margin-bottom:15px"><input type="image" src="images/img_manageEmployee01.png"/></li>
</ul>
<ul>
<li>First name</li>
<li><asp:TextBox runat="server" class="text_input" id="txtFirstName"/></li>
<asp:RequiredFieldValidator ID="validatorFirstName" runat="server" ErrorMessage="*" ControlToValidate="txtFirstName"></asp:RequiredFieldValidator>
<li>Last name</li>
<li><asp:TextBox runat="server" class="text_input" id="txtLastName"/></li>
<asp:RequiredFieldValidator ID="validatorLastname" runat="server" ErrorMessage="*" ControlToValidate="txtLastName"></asp:RequiredFieldValidator>
</ul>
<ul>
<li>CNIC</li>
<li><asp:TextBox runat="server" class="text_input" id="txtCNIC"/></li>
<asp:RequiredFieldValidator ID="validatorCNIC" runat="server" ErrorMessage="*" ControlToValidate="txtCNIC"></asp:RequiredFieldValidator>
<li>Blood Group</li>
<li><asp:DropDownList runat="server" class="text_input" id="ddlBloodGroup">
<asp:ListItem>A+</asp:ListItem>
<asp:ListItem>B+</asp:ListItem>
<asp:ListItem>AB+</asp:ListItem>
<asp:ListItem>A-</asp:ListItem>
<asp:ListItem>B-</asp:ListItem>
<asp:ListItem>AB-</asp:ListItem>
<asp:ListItem>O+</asp:ListItem>
<asp:ListItem>O-</asp:ListItem>
</asp:DropDownList>
</li>
</ul>
<ul>
<li>Mobile</li>
<li><asp:TextBox runat="server" class="text_input" id="txtMobile"/></li>
<asp:RequiredFieldValidator ID="validatorMobile" runat="server" ErrorMessage="*" ControlToValidate="txtMobile"></asp:RequiredFieldValidator>
<li>Phone</li>
<li><asp:TextBox runat="server" class="text_input" id="txtPhone"/></li>
</ul>
<ul>
</ul>
<ul>
<li>E-Mail</li>
<li><asp:TextBox runat="server" class="text_input" id="txtEmail"/></li>
<asp:RegularExpressionValidator ID="valEmail" ControlToValidate="txtEmail" runat="server" ErrorMessage="*" ValidationExpression="\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*">*</asp:RegularExpressionValidator>
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<li>Maritial Status</li>
<li>
<asp:RadioButton ID="rbtnMarried" AutoPostBack="true" runat="server" oncheckedchanged="rbtnMarried_CheckedChanged"/>Married
<asp:RadioButton ID="rbtnUnmarried" AutoPostBack="true" runat="server"
oncheckedchanged="rbtnUnmarried_CheckedChanged"/>Unmarried
</li>
</ContentTemplate>
</asp:UpdatePanel>
</ul>
<ul>
<li>Permanant Address</li>
<li><asp:TextBox runat="server" class="text_input" id="txtPermanantAddress"/></li>
<asp:RequiredFieldValidator ID="validatorPAddress" runat="server" ErrorMessage="*" ControlToValidate="txtPermanantAddress"></asp:RequiredFieldValidator>
<li>Temporary Address</li>
<li><asp:TextBox runat="server" class="text_input" id="txtTemporaryAddress"/></li>
<asp:RequiredFieldValidator ID="validatorTAddress" runat="server" ErrorMessage="*" ControlToValidate="txtTemporaryAddress"></asp:RequiredFieldValidator>
</ul>
<ul>
<li>Salary</li>
<li><asp:TextBox runat="server" class="text_input" id="txtSalary"/></li>
<asp:RequiredFieldValidator ID="validatorSalary" runat="server" ErrorMessage="*" ControlToValidate="txtSalary"></asp:RequiredFieldValidator>
<li>Joining Date</li>
<li>
<%--<ew:calendarpopup ID="calJoiningDate" runat="server"></ew:calendarpopup>--%>
<asp:TextBox ID="CalJoiningDate1" runat="server" CssClass="text_input"></asp:TextBox>
<cc1:CalendarExtender ID="CalJoiningDate1_CalendarExtender" runat="server"
Enabled="True" TargetControlID="CalJoiningDate1">
</cc1:CalendarExtender>
</li>
</ul>
<ul>
<li>Job Area</li>
<li><asp:DropDownList runat="server" class="text_input" id="ddlJobArea"/></li>
<li>Desigantion</li>
<li><asp:DropDownList runat="server" class="text_input" id="ddlDesignation"/></li>
</ul>
<asp:UpdatePanel ID="updatePnl" runat="server">
<ContentTemplate>
<div>
<ul>
<li style="margin-top:20px; margin-bottom:15px"><input type="image" src="images/img_jobHistory.png" /></li>
</ul>
<ul>
<li>Company</li>
<%--<asp:DropDownList runat="server" class="text_input" id="ddlCompany"
onselectedindexchanged="ddlCompany_SelectedIndexChanged"/>--%>
<li><asp:TextBox ID="CompanyNames" runat="server" CssClass="text_input"></asp:TextBox>
<cc1:AutoCompleteExtender ID="CompanyNames_AutoCompleteExtender" runat="server"
DelimiterCharacters="" Enabled="True" ServicePath="getCompanies.asmx" ServiceMethod="getCompaniesMethod" MinimumPrefixLength="1"
TargetControlID="CompanyNames" UseContextKey="True">
</cc1:AutoCompleteExtender>
<li>Job Duration</li>
<li>
<asp:TextBox ID="txtJobDuration" runat="server" class="text_input" />
</li>
<asp:RequiredFieldValidator ID="validatorJobDuration" runat="server"
ControlToValidate="txtJobDuration" ErrorMessage="*"
ValidationGroup="jobHistory"></asp:RequiredFieldValidator>
</li>
</ul>
<ul>
<li>Job Area</li>
<li><asp:DropDownList runat="server" class="text_input" id="ddlJobHistJobArea"/></li>
<li>Designation</li>
<li><asp:DropDownList runat="server" class="text_input" id="ddlJobHistoryDesignation"/></li>
</ul>
<ul>
<li>Last Drawn Salary</li>
<li><asp:TextBox runat="server" class="text_input" id="txtLastDrawnSalary"/>
</li>
<asp:RequiredFieldValidator ID="validatorLastDrawnSalary" runat="server" ValidationGroup="jobHistory" ErrorMessage="*" ControlToValidate="txtLastDrawnSalary"></asp:RequiredFieldValidator>
</ul>
<ul>
<li style="margin-left:160px">
<asp:ImageButton src="images/btn_Add.png" runat="server" ID="btnAddJobHistory" onclick="btnAddJobHistory_Click" CausesValidation="True" ValidationGroup="jobHistory"/>
<asp:ImageButton src="images/btnReset.png" runat="server" ID="btnResetJH" CausesValidation="False" onclick="btnResetJH_Click"/>
</li>
</ul>
<ul style="margin-left:30px">
<asp:GridView ID="grdJobHistory" runat="server" AutoGenerateColumns="False" Width="798px"
AllowPaging="True"
onpageindexchanging="grdJobHistory_PageIndexChanging"
onrowcommand="grdJobHistory_RowCommand"
onrowdeleting="grdJobHistory_RowDeleting"
onrowediting="grdJobHistory_RowEditing" Font-Bold="True"
Font-Names="Calibri" Font-Size="Medium" ForeColor="White" PageSize="5">
<Columns>
<asp:BoundField DataField="EmployeeExperianceId"
HeaderText="EmployeeExperianceId" />
<asp:BoundField HeaderText="Company" DataField="CompanyName" ReadOnly="True" >
<ItemStyle Font-Names="Calibri,Verdana,Arial,Helvetica,sans-serif"
Font-Size="Small" ForeColor="#3F4A53" />
</asp:BoundField>
<asp:BoundField DataField="JobAreaName" HeaderText="Job Area" >
<ItemStyle Font-Names="Calibri,Verdana,Arial,Helvetica,sans-serif"
Font-Size="Smaller" ForeColor="#3F4A53" />
</asp:BoundField>
<asp:BoundField HeaderText="Designation" DataField="DesignationName"
ReadOnly="True" >
<ItemStyle Font-Names="Calibri,Verdana,Arial,Helvetica,sans-serif"
Font-Size="Small" ForeColor="#3F4A53" />
</asp:BoundField>
<asp:BoundField HeaderText="Experiance Duration" DataField="ExperianceDuration"
ReadOnly="True" >
<ItemStyle Font-Names="Calibri,Verdana,Arial,Helvetica,sans-serif"
Font-Size="Small" ForeColor="#3F4A53" />
</asp:BoundField>
<asp:BoundField HeaderText="Salary" DataField="LastDrawnSalary" ReadOnly="True" >
<ItemStyle Font-Names="Calibri,Verdana,Arial,Helvetica,sans-serif"
Font-Size="Small" ForeColor="#3F4A53" />
</asp:BoundField>
<asp:TemplateField AccessibleHeaderText="Edit" HeaderText="Edit">
<ItemTemplate>
<asp:ImageButton ID="imgBtnEdit" runat="server" ImageUrl="images/updateIcon.png" CausesValidation="False" CommandName="Edit" CommandArgument='<%# DataBinder.Eval(Container.DataItem, "EmployeeExperianceId") %>'/>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField AccessibleHeaderText="Delete" HeaderText="Delete">
<ItemTemplate>
<asp:ImageButton ID="imgBtnDelete" runat="server" ImageUrl="images/deleteIcon.png" CausesValidation="False" CommandName="Delete" CommandArgument='<%# DataBinder.Eval(Container.DataItem, "EmployeeExperianceId") %>' OnClientClick="return confirm('Are you sure you want to delete this record...');"/>
</ItemTemplate>
</asp:TemplateField>
</Columns>
<HeaderStyle BackColor="#5D92B9" BorderStyle="None" />
<AlternatingRowStyle BackColor="#AAAAAA" />
</asp:GridView>
</ul>
</div>
<div>
<ul>
<li style="margin-top:20px; margin-bottom:15px"><input type="image" src="images/img_skillDetail.png" /></li>
</ul>
<ul>
<li>Skill</li>
<!--<li><asp:DropDownList runat="server" class="text_input" id="ddlSkill"/></li>-->
<li>
<asp:TextBox ID="SkillAutoComplete" runat="server" CssClass="text_input"></asp:TextBox>
<cc1:AutoCompleteExtender ID="SkillAutoComplete_AutoCompleteExtender"
runat="server" DelimiterCharacters="" Enabled="True" ServicePath="getSkills.asmx" ServiceMethod="getAllSkills" MinimumPrefixLength="1"
TargetControlID="SkillAutoComplete">
</cc1:AutoCompleteExtender>
</li>
<li>Skill Detail</li>
<li><asp:TextBox runat="server" class="text_input" id="txtSkillDetail"/></li>
<asp:RequiredFieldValidator ID="validatorSkillDetail" runat="server" ValidationGroup="skill" ErrorMessage="*" ControlToValidate="txtSkillDetail"></asp:RequiredFieldValidator>
</ul>
<ul>
<li style="margin-left:160px">
<asp:ImageButton src="images/btn_Add.png" runat="server" ID="btnAddSkill" CausesValidation="True" ValidationGroup="skill" onclick="btnAddSkill_Click"/>
<asp:ImageButton src="images/btnReset.png" runat="server" ID="btnResetSkill" CausesValidation="False" onclick="btnResetSkill_Click"/>
</li>
</ul>
<ul style="margin-left:30px">
<asp:GridView ID="grdSkill" runat="server" AutoGenerateColumns="False" Width="798px"
AllowPaging="True"
onpageindexchanging="grdSkill_PageIndexChanging"
onrowcommand="grdSkill_RowCommand"
onrowdeleting="grdSkill_RowDeleting"
onrowediting="grdSkill_RowEditing" Font-Bold="True"
Font-Names="Calibri" Font-Size="Medium" ForeColor="White" PageSize="5">
<Columns>
<asp:BoundField HeaderText="EmployeeSkillId" DataField="EmployeeSkillId" >
</asp:BoundField>
<asp:BoundField DataField="SkillName" HeaderText="Skill Name" ReadOnly="True">
<ItemStyle Font-Names="Calibri,Verdana,Arial,Helvetica,sans-serif"
Font-Size="Small" ForeColor="#3F4A53" />
</asp:BoundField>
<asp:BoundField HeaderText="Skill Detail" DataField="SkillDetail"
ReadOnly="True" >
<ItemStyle Font-Names="Calibri,Verdana,Arial,Helvetica,sans-serif"
Font-Size="Small" ForeColor="#3F4A53" />
</asp:BoundField>
<asp:TemplateField>
<ItemTemplate>
<asp:ImageButton ID="imgBtnEdit" runat="server" ImageUrl="images/updateIcon.png" CausesValidation="false" CommandName="Edit" CommandArgument='<%# DataBinder.Eval(Container.DataItem, "EmployeeSkillId") %>'/>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField>
<ItemTemplate>
<asp:ImageButton ID="imgBtnDelete" runat="server" ImageUrl="images/deleteIcon.png" CommandName="Delete" CommandArgument='<%# DataBinder.Eval(Container.DataItem, "EmployeeSkillId") %>' OnClientClick="return confirm('Are you sure you want to delete this record...');"/>
</ItemTemplate>
</asp:TemplateField>
</Columns>
<HeaderStyle BackColor="#5D92B9" BorderStyle="None" />
<AlternatingRowStyle BackColor="#AAAAAA" />
</asp:GridView>
</ul>
</div>
<div>
<ul>
<li style="margin-top:20px; margin-left:20px; margin-bottom:15px"><input type="image" src="images/img_qualificationDetail.png" /></li>
</ul>
<ul>
<li>Course</li>
<li><asp:DropDownList runat="server" class="text_input" id="ddlCourse"/></li>
<li>Institution</li>
<li><asp:TextBox runat="server" class="text_input" id="txtInstitution"/></li>
<asp:RequiredFieldValidator ID="validatorInsitution" runat="server" ValidationGroup="course" ErrorMessage="*" ControlToValidate="txtInstitution"></asp:RequiredFieldValidator>
</ul>
<ul>
<li>Duration</li>
<li><asp:TextBox runat="server" class="text_input" id="txtCourseDuration"/></li>
<asp:RequiredFieldValidator ID="validatorDuration" runat="server" ValidationGroup="course" ErrorMessage="*" ControlToValidate="txtCourseDuration"></asp:RequiredFieldValidator>
<li>Passing Year</li>
<li>
<asp:TextBox ID="calPassingYear1" runat="server" CssClass="text_input"></asp:TextBox>
</li>
<!--<li><ew:CalendarPopup ID="calPassingYear" runat="server"></ew:CalendarPopup></li>-->
</ul>
<ul>
<li>Marks/Percentage/GPA</li>
<li><asp:TextBox runat="server" class="text_input" id="txtMarksPercentage"/></li>
<asp:RequiredFieldValidator ID="validatorMarks" runat="server" ValidationGroup="course" ErrorMessage="*" ControlToValidate="txtMarksPercentage"></asp:RequiredFieldValidator>
<li style="margin-left:160px">
<asp:ImageButton src="images/btn_Add.png" runat="server" ID="btnAddCourse" CausesValidation="True" onclick="btnAddCourse_Click" ValidationGroup="course"/>
<asp:ImageButton src="images/btnReset.png" runat="server" ID="btnResetCourse" CausesValidation="False" onclick="btnResetCourse_Click" />
</li>
</ul>
<ul style="margin-left:30px">
<asp:GridView ID="grdCourse" runat="server" AutoGenerateColumns="False" Width="798px"
AllowPaging="True"
onpageindexchanging="grdCourse_PageIndexChanging"
onrowcommand="grdCourse_RowCommand"
onrowdeleting="grdCourse_RowDeleting"
onrowediting="grdCourse_RowEditing" Font-Bold="True"
Font-Names="Calibri" Font-Size="Medium" ForeColor="White" PageSize="5">
<Columns>
<asp:BoundField DataField="EmployeeQualificationId"
HeaderText="EmployeeQualificationId" />
<asp:BoundField HeaderText="Course" DataField="CourseTitle" ReadOnly="True" >
<ItemStyle Font-Names="Calibri,Verdana,Arial,Helvetica,sans-serif"
Font-Size="Small" ForeColor="#3F4A53" />
</asp:BoundField>
<asp:BoundField HeaderText="Institution" DataField="InstitutionName"
ReadOnly="True" >
<ItemStyle Font-Names="Calibri,Verdana,Arial,Helvetica,sans-serif"
Font-Size="Small" ForeColor="#3F4A53" />
</asp:BoundField>
<asp:BoundField HeaderText="Duration" DataField="Duration"
ReadOnly="True" >
<ItemStyle Font-Names="Calibri,Verdana,Arial,Helvetica,sans-serif"
Font-Size="Small" ForeColor="#3F4A53" />
</asp:BoundField>
<asp:BoundField HeaderText="Passing Year" DataField="YearOfPassing"
ReadOnly="True" >
<ItemStyle Font-Names="Calibri,Verdana,Arial,Helvetica,sans-serif"
Font-Size="Small" ForeColor="#3F4A53" />
</asp:BoundField>
<asp:BoundField HeaderText="Marks/Percentage/GPA" DataField="MarksPercentage"
ReadOnly="True" >
<ItemStyle Font-Names="Calibri,Verdana,Arial,Helvetica,sans-serif"
Font-Size="Small" ForeColor="#3F4A53" />
</asp:BoundField>
<asp:TemplateField>
<ItemTemplate>
<asp:ImageButton ID="imgBtnEdit" runat="server" ImageUrl="images/updateIcon.png" CausesValidation="false" CommandName="Edit" CommandArgument='<%# DataBinder.Eval(Container.DataItem, "EmployeeQualificationId") %>'/>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField>
<ItemTemplate>
<asp:ImageButton ID="imgBtnDelete" runat="server" ImageUrl="images/deleteIcon.png" CommandName="Delete" CommandArgument='<%# DataBinder.Eval(Container.DataItem, "EmployeeQualificationId") %>' OnClientClick="return confirm('Are you sure you want to delete this record...');"/>
</ItemTemplate>
</asp:TemplateField>
</Columns>
<HeaderStyle BackColor="#5D92B9" BorderStyle="None" />
<AlternatingRowStyle BackColor="#AAAAAA" />
</asp:GridView>
</ul>
</div>
</ContentTemplate>
</asp:UpdatePanel>
<ul>
<li style="margin-left:90px; margin-bottom:10px;">
<asp:ImageButton ID="btnSubmit" AlternateText="submit button" runat="server" src="images/btn_Submit.png" onclick="btnSubmit_Click"/>
</li>
</ul>
</div>
<!--CLOSE CONTENT DIV-->
</asp:Content>
Par Exemple:
Quand j'ai essayé d'ajouter un peu de ASP.NET côté serveur les commandes comme <asp:testBox id="txtBox" runat="server"/>
ils n'étaient pas accessibles dans le code derrière.:
Erreur: txtBox n'est pas définie dans le Contexte actuel ...
Ce que je fais mal?
- Votre ajoutés
runat="server"
pour le contrôle de la définition? - ma question était très simple, je dis juste que mes nouveaux contrôles que j'ai ajouté sur ma page ne sont pas accessibles dans le code derrière...... est qu'il ya quelque chose qui est difficile à comprendre pour u ?
- Par Exemple: quand j'ai essayé d'ajouter un peu de asp.net côté serveur les commandes comme "code" <asp:textbox id="txtBox" runat="server"/> il n'est pas accessible dans le code derrière moyens txtBox.texte d'erreur txtBox n'est pas de définir dans le Contexte actuel ...
Vous devez vous connecter pour publier un commentaire.
J'ai eu ce problème quand j'ai déménagé d'un site web dans une solution par la création d'un asp.net projet d'application dans la solution et la copie aspx & aspx.cs des fichiers. Je l'ai résolu en cliquant droit sur le projet et de conversion d'une application web. Cela a créé le nécessaire designer.cs des fichiers qui contiennent le code pour l'aep des objets sur la page aspx.
Cela arrive en particulier avec les vieux trucs dans visual studio.
En 1.1 (avant de "classes partielles") vous pouvez toujours voir le contrôle des déclarations dans le code-behind.
Dans les versions ultérieures, ils ont déménagé dans un cs.concepteur de fichier (donc, maintenant que vous avez eu des classes partielles -- partie dans le .cs.concepteur de fichier, et une partie dans le .cs fichier).
Si vous travaillez avec un visual studio "projet", vous pouvez ouvrir la cs.concepteur de fichier, et ajouter votre contrôle. Il suffit de regarder comment tous les autres contrôles sont déclarés -- c'est tout ce que vous avez à faire.
Si vous travaillez avec un visual studio "site web", alors vous êtes hors de la chance. Il n'y a aucun moyen de consulter ou de modifier la cs.concepteur de fichier, car il n'est pas là jusqu'à ce que le site est compilé.
Assurez-vous que le designer.cs fichier de la page est inclus dans le projet. Un clic droit sur elle et voir si vous obtenez l'option "Inclure dans le projet."
si vous ne trouvez pas le contrôle dans des .cs page, il suffit d'ajouter la référence de contrôle du concepteur.cs page et essayez d'accéder à nouveau.
Je suis sûr que ce sera 100%. c'est ce que j'ai appris
Viens de trouver cette question, et je me rends compte que c'est assez vieux, mais je pense que j'ai une réponse potentielle. Votre code-behind pour le concepteur de la classe partielle pourrait ne pas être inclus dans le projet arrive parfois, lorsque vous avez renommé et/ou de la copie du fichier.
Aller à votre page (appelons-Test.aspx) et d'élargir son arbre dans l'Explorateur de solutions, voyez - vous un fichier nommé Test.aspx.cs et Test.aspx.le concepteur.cs? Si non, cherchez le bouton en haut de l'Explorateur de solutions marqué Afficher Tous les Fichiers. Cliquez dessus - si vous voyez maintenant l' .le concepteur.cs fichier, cliquez-droit dessus et sélectionnez "inclure dans le projet". Cela m'a fait aller à nouveau après que j'ai rencontré ce problème.
Vous avez renommé le fichier de votre projet? Si vous avez, alors n'oubliez pas de renommer le Hérite en haut de votre page ASPX.
Si vous êtes confronté à ce problème dans VS2013 dans un Site web (par opposition à une Application Web) et d'avoir plus d'un fichier aspx partage d'un code-behind, alors vous devez vous assurer que TOUS les fichiers aspx ont exactement la même collection de contrôles.
Dans les versions précédentes de Visual Studio, ce n'était pas un problème mais il semble que VS2013 a resserré.
J'espère que cela aide quelqu'un - j'ai seulement repéré grâce à Sergey du commentaire ci-dessus.
Première
contrôle
Si ce n'aide pas
contrôle
et ouvrez à nouveau la page
Utilisation
CodeBehind
attribut au lieu deCodeFile
attribut de la balise Page.Par exemple:
Ce qui m'est arrivé dans un projet de site web dans VS2010, mais comme je suis partie d'une grande équipe, je n'ai pas le choix de se convertir à l'Application Web, comme Dominique l'a suggéré.
Il s'avère que c'était parce que j'avais changé mon éditeur par défaut pour les fichiers ASPX pour "Éditeur HTML" au lieu de "Formulaire Web de l'Éditeur". J'ai fait cela car intellisense était en train de tuer mon ordinateur à chaque fois que j'ai ouvert un fichier ASPX. Quand je clic droit sur cette page pour "Ouvrir Avec..." le "Formulaire Web de l'Éditeur", et a ajouté les contrôles de nouveau, il a fonctionné parfaitement et ils sont maintenant disponibles dans le fichier code-behind.
Voici une liste de dépannage je passe quand je reçois des problèmes similaires.
Si 3. est votre problème, supprimer temporairement le marque-place de contrôles et de toute référence que vous avez eu dans le code derrière, c'est à dire faire en sorte que vous pouvez réussir à construire. Fermez le concepteur.cs fichier si vous l'avez ouvert et de faire une reconstruction. Après quoi essayer de ré-ajouter un contrôle de base (à la suite de l'étape 1 et 2) et de voir si il s'affiche (il devrait). Puis ajouter à nouveau votre marque vers le haut et vous devriez trouver la génération de code est à nouveau au travail.
entrer manuellement déclaration dans d'autres classe partielle
J'ai eu le même problème lors de l'2 Pages ASP ont été en utilisant le même fichier Code-Behind (Il a été ASP.NET projet de Site Web dans Visual Studio 2013, pas un ASP.NET l'Application Web). J'ai résolu le problème en changeant d'utiliser un Code différent Derrière fichiers pour chaque page.
Raisons possibles:
La solution que j'ai trouvé, en dehors de la correction de la ci-dessus, est de reconstruire le projet:
Une chose que vous devez prendre soin est, avant de reconstruire, fermez le concepteur de fichier.
J'ai eu un problème similaire. J'ai été confronté à ce problème quand j'ai essayé de renommer le fichier aspx. Dans mon cas, le nom de la classe n'a pas été mis à jour à partir de UpdateRecords à ModifyRecords quand j'ai renommé le fichier aspx pour ModifyRecords. Donc aucun des ASP.NET les contrôles ont été accessibles depuis le code-behind.
Code derrière avant de le renommer:
Code derrière après le changement de nom:
Si vous essayez de renommer le fichier aspx ou copier-coller à partir de différents fichiers, assurez-vous juste, le nom de la classe est mise à jour.
Ajouter un vide .aspx.le concepteur.cs fichier à votre projet
D'avoir visual studio autocreate déclarations de .aspx les contrôles de la page, vous pouvez ajouter un vide YourWebPageName.aspx.le concepteur.cs fichier à votre projet.
Ajouté au projet de l'extérieur, vous pouvez l'ajouter à votre projet en cliquant droit sur le projet, en sélectionnant nouvel élément et inclure les nouveaux .cs de fichier dans votre projet.
Puis, dès que vous effectuez une modification mineure à votre YourWebPageName page dans l'éditeur de conception Visual Studio va remplir le vide .cs fichier avec des déclarations.
Assurez-vous que le code-behind de l'attribut dans la directive de page se réfèrent à la cs de fichier lorsque vous appelez la commande
J'ai le même problème. J'ai trouvé la solution en supprimant "PublicKeyToken=31bf3856ad364e35"
Namespace="System.Web.L'INTERFACE utilisateur" TagPrefix="asp" %>" de la page aspx et cela fonctionne normalement maintenant.
Si votre tentent d'accéder à des étiquettes à partir de votre propre méthode intégrée sur le back-end assurez-vous que vous ne faites pas cette méthode statique - sinon vous n'aurez pas accès à ces balises...
Face à un problème similaire, car les contrôles sont soit au sein de l':
"LoginView" ou "AnonymousTemplate" et Viewstatemode a été Désactivé
Résolu en déplaçant l'Asp contrôles en dehors de ces éléments de balises
J'ai également eu un problème similaire dans le passé. Comme vous l'avez mentionné que le projet a été précédemment construit par quelqu'un d'autre, Donc il doit être codé en VB en fonction de codage et vous pouvez vérifier que dans le web.config compilation de détails. Essayez de copier la page aspx contenu sur votre nouvellement créé, C# page aspx et collez le code ainsi qu'il fonctionne.
Problème c'est que vous pourriez avoir plusieurs fichiers aspx avec codefile dans la directive de page les points de même fichier code-behind.
Il attend le même contrôle existe dans tous les fichier aspx liée à même de code derrière et ainsi de jeter erreur de compilation.
Si vous avez toujours le problème de nettoyage le même que celui mentionné ci-dessus, vérifiez le concepteur de la page et de régénérer un.
Ajouter votre id de contrôle nom de votre concepteur.cs, puis il sera disponible dans votre fichier cs.
Très vieille question, mais je suis tombé sur cette question aujourd'hui, et finit par trouver une solution que je n'ai pas vu mentionné ici. Donc, je vais le partager.
Il y a trois fichiers dans une page: le ASPX, le ASPX.CS, et la ASPX.Le concepteur.CS
Lorsque vous modifiez le code HTML/Balisage de la ASPX directement (comme je préfère le faire), il n'est pas automatiquement mise à jour le concepteur. C'est pourquoi il ne s'affiche pas dans intellisense (au moins pour moi). Pour obtenir l'IDE de mettre à jour le concepteur, vous avez la page ASPX ouvert dans Visual Studio (et le fichier), cliquez sur le menu "affichage" et sélectionnez "designer" (ou appuyez sur Maj+F7); l'IDE va vous montrer la vue de la conception; un clic droit dans la zone de conception et sélectionnez "actualiser" dans le menu contextuel; enregistrer le fichier, sélectionnez "balisage" du menu "view" (ou appuyez sur Maj+F7 nouveau); et vérifiez le fichier de concepteur pour voir si le
les contrôles ajoutés existent aujourd'hui dans le concepteur.
Il y a peut être une méthode plus simple, mais cela a fonctionné pour moi d'être en mesure d'accéder à un contrôle à partir du code-behind, que j'avais ajouté au code HTML manuellement.
J'ai résolu ce problème en forçant le VS pour régénérer mon fichier de concepteur. Pour que
1. J'ai supprimé mon designer.cs fichier.
2. Copié le fichier de concepteur d'une autre page.
3. Renommé le fichier de concepteur et de la classe partielle dans il corresponde au nom de ma page code-behind de la classe.
4. Supprimé tout ce qui, à partir de la classe de concepteur corps.
5. Couper tous les contrôles de la aspx balisage de la page.
5. Sauvé de la page aspx.
6. Collé les contrôles et enregistré le fichier à nouveau.
De ce fait VS recréer tous les contrôles dans le vide concepteur de fichier. L'espoir qui fonctionne pour vous.
Assurez-vous que votre contrôle doit avoir un code généré-jacent de référence à tous! Par exemple, si elle est dans un modèle de liste, alors vous aurez besoin de regarder une référence à un élément de liaison de gestionnaire d'événements.
Ce qui m'a poussé sauvage parce que j'ai eu deux contrôles avec le même ID, on était au niveau de la page alors que l'autre était dans un modèle.
Je pensais que le générés référence que j'utilise pour l'une dans le modèle et je n'arrivais pas à savoir pourquoi un contrôle nouvellement ajouté dans le modèle n'était pas entraînant un générateur de référence.