what am i missing to use embedded resources? - c#

I am using Asp.net with c# in Visual studios 2012.
I added the images i need into the solution by
Creating a folder
rightclicking and selecting add-existing
selected image file
right clicked image - properties - build action embedded resource
I went into the project properties assembly info.cs and added references to my resources.
[assembly: WebResource("FIMS_Courses.Images.FIMSNext.gif", "image/gif")]
[assembly: WebResource("FIMS_Courses.Images.FIMSPrevious.gif", "image/gif")]
[assembly: WebResource("FIMS_Courses.Images.FIMSCourselist.gif", "image/gif")]
[assembly: WebResource("FIMS_Courses.Images.FIMStopofpage.gif", "image/gif")]
now i am trying to access them.
Inside my asp potion of my program i select them by typing imageUrl= and then intellesense lets me choose the path; This is my code:
<asp:ImageButton ID="PreviousListLink" ImageUrl="~/Images/FIMSCourselist.gif" CssClass="floatleft" runat="server"/> <asp:ImageButton ID="PreviousButtonTop" ImageUrl="~/Images/FIMSPrevious.gif" runat="server"/> <asp:ImageButton ID="NextButtonTop" ImageUrl="~/Images/FIMSNext.gif" runat="server" />
<h4><asp:Label ID="CourseNumber" Text="####" runat="server"/> <asp:Label ID="CourseTitle" Text="This is a course Title" runat="server" /></h4>
<asp:Label id="Desc" text="Course Description" />
<asp:Image ID="TopOfPageButton" ImageUrl="~/Images/FIMStopofpage.gif" runat="server" /> <asp:ImageButton ID="PreviousButtonBottom" ImageUrl="" runat="server" /> <asp:ImageButton ID="NextButtonBottom" ImageUrl="" runat="server"/>
and when i give it a test run i get nothing showing up. no images what so ever.
am i missing some crucial steps to access embedded resources?

You need to reference your embedded resources using the code-behind.
Example:
string topOfPageImageUrl = Page.ClientScript.GetWebResourceUrl(this.GetType(),
"FIMS_Courses.Images.FIMStopofpage.gif");
TopOfPageButton.ImageUrl = topOfPageImageUrl;

Related

Use resources in Class Library from WebForms app

In my application there is one class library project and one website. I created a resource file in a class library and modifier of it is public. I need to use this resource in website layer:
<asp:Label ID="Label2" runat="server" Text="<%$ Resources:resourceName, ErrorEmptyName %>"></asp:Label>
But an error is shown:
The resource object with key 'ErrorEmptyName' was not found.
But in code-behind I access this key:
Label1.Text = resourceName.ErrorEmptyName;
and no error.
I find this page but i can not use:
Referencing resource files from multiple projects in a solution
What is wrong? How to do it?
You can use the code
<asp:Label ID="Label2" runat="server" Text="<%# resourceName.ErrorEmptyName %>"></asp:Label>
maybe you need to import your namespace.

Images folder pictures in eval repeater

When I use photos without any folder, <asp:Image ID="Image1" ImageUrl='<%# Eval("PresidentPhotoPath") %>' runat="server" /> , it works.
However, when I use the photos under Images folder, the pictures are not shown and I get a blank screen only. Here is the code I'm using:
<div class="wrapper">
<asp:Repeater runat="server" ID="Repeater1">
<ItemTemplate>
<asp:Image ID="Image1"
ImageUrl='"/Images" + <%# Eval("PresidentPhotoPath") %>'
runat="server" />
</ItemTemplate>
</asp:Repeater>
</div>
Change asp:Image to code bellow:
<asp:Image ID="Image1"
ImageUrl='<%# string.Format("~/Images/{0}", Eval("PresidentPhotoPath")) %>'
runat="server" />
I would recommend using a code-behind method to build the string for you, like this:
protected string BuildPath(string photoPath)
{
return "Images/ + photoPath;
}
Note: Consider naming this something more useful than BuildPath as that is fairly generic, just picked that name because nothing better came to mind immediately.
Now in your markup you can just call the method, like this:
ImageUrl='<%# BuildPath(Eval("PresidentPhotoPath")) %>'
I recommend this approach for the following reasons:
The markup does not contain any complex logic whatsoever, just a method call with the Eval() value
It is easier to debug the logic versus embedded code blocks
You can leverage the power of Visual Studio compiler to catch syntax errors at compile-time versus run-time errors when the logic is embedded into the binding syntax of the markup

Ajax TabContainer tabs not working after issues with visibility

At first I was having problems with forcing the TabContainer to show. Apparantly something caused it to render as 'style="visibility: hidden"' on runtime. However I fixed this by adding style="visibility:visible" to the TabContainer. It looks like this now:
<asp:TabContainer ID="TabContainer1" runat="server" style="visibility:visible">
<asp:TabPanel ID="TabPanel1" HeaderText="Tab 1" runat="server">
<ContentTemplate>
contents of tab 1 <br />
contents of tab 1 <br />
contents of tab 1 <br />
</ContentTemplate>
</asp:TabPanel>
<asp:TabPanel ID="TabPanel2" HeaderText="Tab 2" runat="server">
<ContentTemplate>
contents of tab 2 <br />
contents of tab 2 <br />
contents of tab 2 <br />
</ContentTemplate>
</asp:TabPanel>
<asp:TabPanel ID="TabPanel3" HeaderText="Tab 3" runat="server">
<ContentTemplate>
contents of tab 3 <br />
contents of tab 3 <br />
contents of tab 3 <br />
</ContentTemplate>
</asp:TabPanel>
</asp:TabContainer>
Now it does show. but whenever I press tab 2 or 3, nothing happens. It still shows 'contents of tab 1'.
How do I fix this? I would love to have a working TabContainer!
Your code worked for me as-is in Visual Studio 2012. The only thing I did was add the ScriptManager.
<ajaxToolkit:ToolkitScriptManager runat="server" />
If you are using .net 4.0/4.5, check that you have added AjaxTookitScriptManager (and not ScriptManager usually added in .net 2.0). I ran into the same problem and figured that out from this notes: http://stephenwalther.com/archive/2012/09/20/september-2012-release-of-the-ajax-control-toolkit
Below is an elaborate procedure that worked for me:
Create a new web site/application in VS 2012
Install AjaxToolKit using NuGet (I do mine like this: Tools Menu > Library Package
Manager. then in the prompt I type 'Install-Package
AjaxControlToolkit' to install it)
In the ToolBox window, right click the Ajax Tools or any preferred folder, Choose Items... > Browse... to the Bin folder where the AjaxToolkit.dll should now exist and add it
Create a new WebForm Drag and drop AjaxTookitlScriptManager to the page
Drag and drop TabControl from the ToolBox. Add tabs to it and set
its width, eg to 500px Test and it should work
I have the same problem with the same control Instead of using ScriptManager , try using ToolkitScriptManager . so this may be a similar issue.
<asp:ToolkitScriptManager runat="server">
</asp:ToolkitScriptManager>
if there is a problem pop ups to you , try to re attached the latest realese of Ajax Control toolkit (I had the same problem and it is done by doing this)
http://ajaxcontroltoolkit.codeplex.com/releases/view/116091
I wish I can help :).

Setting 'codebehind' properties from within markup on ASP.NET Web Forms

Placing the following code inside the 'markup' section on a web form does not work
Have I messed the syntax up or is something like this not possible on 'server side' controls?
<asp:TextBox runat="server" ID="txt" Text='<%#System.Configuration.ConfigurationManager.AppSettings["foo"] %>' />
Use $ expression.
<asp:TextBox
runat="server"
ID="txt"
Text='<%$ AppSettings: foo %>'

Asp.net controls are not accessible in code behind

I have a project that was previously built by someone else. When I try to add a new control to the page, I can't access it in the code behind. When I try to access it there's an error message that the Control is not defined in the current context.
<%# 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>
For Example:
When I was trying to add some ASP.NET server side controls like <asp:testBox id="txtBox" runat="server"/> they were not accessible in the code behind.:
Error: txtBox is not defined in the current Context ...
What am I doing wrong?
I had this problem when I moved a website into a main solution by creating an asp.net application project in the solution and copying aspx & aspx.cs files over. I solved it by right clicking on the project and converting to a web application. This created the necessary designer.cs files which contain the code for the asp objects on the aspx page.
This happens especially with older stuff in visual studio.
In 1.1 (before "partial classes") you could always see the control declarations in the code-behind.
In later versions, they moved that into a cs.designer file (so now you've got partial classes -- part in the .cs.designer file, and part in the .cs file).
If you're working with a visual studio "project", then you can open the cs.designer file, and add your control. Just look at how all of the other controls are declared -- that's all you have to do.
If you're working with a visual studio "website", then you're out of luck. There's no way to view or edit the cs.designer file, because it isn't there until the website is compiled.
Check to ensure the designer.cs file for the page is included in the project. Right click it and see if you get the option to "Include in project."
Just found this question, and I realise it's quite old, but I think I have a potential answer. Your code-behind for the designer's partial class might not be included in the project - sometimes happens when you've renamed and/or copied the file.
Go to your page (let's call it Test.aspx) and expand its tree in the Solution Explorer - do you see a file called Test.aspx.cs and Test.aspx.designer.cs? If not, look for a button at the top of the Solution Explorer marked Show All Files. Click it - if you now see the .designer.cs file there, right-click it and select "include in project". This got me going again after I ran into this problem.
if you are unable to find the control in .cs page, simply add the control reference in designer.cs page and try to access it again.
I'm sure it will 100%. this is what i learned
Have you renamed your project file? If you have, then remember to rename the Inherits at the top of your ASPX page.
Use CodeBehind attribute instead of CodeFile attribute of Page tag.
Eg:
<%# Control Language="C#" AutoEventWireup="true" **CodeBehind**="Results.ascx.cs" Inherits="MyApp.Results" %>
If you're experiencing this issue in VS2013 in a Website (as opposed to a Web Application) and have more than one aspx file sharing a codebehind then you need to make sure that ALL the aspx files have exactly the same collection of controls.
In previous versions of Visual Studio this wasn't an issue but it looks like VS2013 has tightened up.
I hope this helps someone - I only spotted it thanks to Sergey's comment above.
First
Make sure you assigned an ID to the
control
If this doesn't help
Close the page where you added the
control
Rebuild/compile the project
and open the page again
This happened to me in a website project in VS2010, but as I'm part of a larger team, I don't have the option to convert to Web Application as Domenic suggested.
It turns out it was because I had switched my default editor for ASPX files to "HTML Editor" instead of "Web Form Editor". I did this because intellisense was killing my computer whenever I opened an ASPX file. When I right clicked on this page to "Open With..." the "Web Form Editor", and added the controls again, it worked perfectly and they're now available in the code behind file.
Add an empty .aspx.designer.cs file to your project
To have visual studio autocreate declarations of .aspx page controls you can add an empty YourWebPageName.aspx.designer.cs -file to your project.
If added to the project externally you can add it to your project by right clicking the project, selecting new item and include the new .cs file into your project.
Then, as soon as you make a minor modification to your YourWebPageName page in the design editor Visual Studio will populate your empty .cs file with declarations.
Here are a list of troubleshooting I go through when I get similar problems.
Make sure the IDs you are tying to use in the code behind are actually declared in the markup
Make sure these elements have 'runat="server"'
If you are having problems with a specific control, try to create one near the top of the page, if that doesn't work either, it's a code generation problem
If 3. is your issue, temporarily remove the mark-up of the controls and any reference you had to them in the code behind, ie make it so you can successfully build. Close the designer.cs file if you have it open and do a rebuild. After which try to re-add a basic control (following step 1 and 2) and see if it shows up (it should). Then re-add your mark up as needed and you should find the code generation is working again.
manually enter declaration in other partial class
I had the same issue when 2 ASP Pages were using the same Code Behind file (It was ASP.NET Web Site project in Visual Studio 2013, not an ASP.NET Web Application). I have solved the problem by changing it to use different Code Behind files for each page.
Possible reasons:
id mismatch.
runat="server" not present in the control at .aspx file.
The solution that I found, apart from correcting the above, is to rebuild the project:
One more thing you need to take care is, before rebuild, close the designer file.
I had a similar problem. I faced this problem when I tried to rename the aspx file. In my case, the class name was not updated from UpdateRecords to ModifyRecords when I renamed the aspx file to ModifyRecords. Hence none of the ASP.NET controls were accessible from the code behind.
Code behind before renaming:
public partial class UpdateRecords : System.Web.UI.Page
Code behind after renaming:
public partial class ModifyRecords : System.Web.UI.Page
If you try to rename aspx file or copy-paste from different file, just make sure, the class name is updated.
Make sure the codeBehind attribute in page directive refer to the cs file where you call the control
I have the same problem. I found the solution by removing "PublicKeyToken=31bf3856ad364e35"
Namespace="System.Web.UI" TagPrefix="asp" %>" from aspx page and it works normal now.
If your trying to access the tags from your own built in method on the back-end make sure that you don't make this method static - otherwise you wont have access to these tags...
<p #id="myTag" runat="server">...</p>
private static void myMethod(){
myTag.InnerText = "Hello" //You will not have access to this tag
}
private void myMethod(){
myTag.InnerText = "Hello"; //You have access to tags
}
Faced a similar problem because the controls were either within the:
"LoginView" or "AnonymousTemplate" and Viewstatemode was Disabled
Resolved by moving the Asp controls outside these tag elements
I also had a similar problem in the past. As you have mentioned that the project was previously built by someone else, So it must be coded in VB based coding and you can check that in web.config compilation details. Try copying the aspx page content onto your newly created C# aspx page and paste the code as well it will work.
Problem is you might have multiple aspx files with codefile in page directive points to same codebehind file.
It expects the same control to exists in all the aspx file linked to same code behind and thus throwing compilation error.
If you still having the issue cleaning up the same as mentioned above, check the designer page and regenerate one.
protected global::System.Web.UI.WebControls.CheckBox CheckBoxName ;
Add your control id name to your designer.cs and then it will be available in your cs file.
Very old question, but I ran into this issue today, and ended up figuring out a solution that I didn't see mentioned here. So, I'll share it.
There are three files in a page: the ASPX, the ASPX.CS, and the ASPX.Designer.CS
When you edit the HTML/Markup for the ASPX directly (like I prefer to do), it doesn't automatically update the designer. That's why it's not showing up in intellisense (at least for me). To get the IDE to update the designer, you have the ASPX page open in Visual Studio (and have it be the focused file); click on the "view" menu, and select "designer" (or hit Shift+F7); the IDE will show you the design view; right-click in the design area and select "refresh" from the context menu; save the file; select "markup" from the "view" menu (or hit Shift+F7 again); and check the designer file to see if the
controls you added now exist in the designer.
There might be a simpler way, but this worked for me to be able to access a control from the code behind that I had added to the HTML manually.
Make sure your control should have a generated code-behind reference at all! For example, if it’s in a list template then you’ll need to look up a reference to it in an item binding event handler.
This drove me wild because I had two controls with the same ID, one was at page level whereas the other was in a template.
I thought the generated reference I was using was for the one in the template and I couldn’t work out why a newly added control in the template wasn’t resulting in a generated reference.
I solved this problem by forcing the VS to regenerate my designer file. For that :
I deleted my designer.cs file.
Copied the designer file of another page.
Renamed the designer file and the partial class in it to match the name of my page code behind class.
Deleted everything from the designer class body.
Cut all the controls from the aspx markup page.
Saved the aspx page.
Pasted the controls back and saved the file again.
This made VS recreate all the controls in the blank designer file.
Hope that works for you.
This is an old one but I ran into the same issue today and after bumping my head here and there, I found out that controls you add in GridViews are generated dynamically so, you need to access them based on the index they are present at (Just like lists/arrays in regular programming) instead of IDs.
Hence, if you're adding your new controls in GridView, you will need to access them via indexes. A good practice would be to create ENUM in code behind for the GridView items indexes.
So old question,
But if it helps try to move controls outside any other control because accessing make different.

Categories