C# CS0103:对于页面中的所有控件,当前上下文中不存在该名称?

C# CS0103:对于页面中的所有控件,当前上下文中不存在该名称?,c#,asp.net,webforms,custom-controls,ascx,C#,Asp.net,Webforms,Custom Controls,Ascx,我已将一个自定义控件导入ASP.NET(C#),控件名为HijriGregDatePicker.ascx,它在伊斯兰日历和公历上都有一个弹出式日历。编译HijriGregDatePicker.ascx.cs时遇到的问题我收到了许多此类错误 错误CS0103中不存在名称“ctlCalendarLocalized” 当前上下文证书\certificate\HijriGregDatePicker.ascx.cs 在ASCX文件中,日历如下所示:它位于面板的DIV中 <asp:Calendar I

我已将一个自定义控件导入ASP.NET(C#),控件名为
HijriGregDatePicker.ascx
,它在伊斯兰日历和公历上都有一个弹出式日历。编译
HijriGregDatePicker.ascx.cs
时遇到的问题我收到了许多此类错误

错误CS0103中不存在名称“ctlCalendarLocalized” 当前上下文证书\certificate\HijriGregDatePicker.ascx.cs

在ASCX文件中,日历如下所示:它位于面板的DIV中

<asp:Calendar ID="ctlCalendarLocalized" runat="server" BackColor="White" 
                BorderColor="White" 
                Font-Names="Verdana" Font-Size="8pt" ForeColor="Black" Height="125px"  
                Width="275px" BorderWidth="1px" NextPrevFormat="FullMonth" 
                ShowDayHeader="True" ShowNextPrevMonth="False"
                OnSelectionChanged="ctlCalendarLocalized_SelectionChanged">
                <DayHeaderStyle Font-Bold="True" Font-Size="7pt"  Font-Names="Tahoma" />
                <NextPrevStyle VerticalAlign="Bottom" Font-Bold="True" Font-Size="8pt" 
                    ForeColor="#333333" />
                <OtherMonthDayStyle ForeColor="#999999" />
                <SelectedDayStyle BackColor="#333399" ForeColor="White" />
                <TitleStyle BackColor="White" BorderColor="Black" Font-Bold="True" 
                    BorderWidth="1px" Font-Size="9pt" ForeColor="#333399" BorderStyle="Ridge" Font-Names="sans-serif" />
                <TodayDayStyle BackColor="#CCCCCC" />
</asp:Calendar>
但这没有帮助,另一个解决方案是在
HijriGregDatePicker.ascx

是这样的:

<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="HijriGregDatePicker.ascx.cs" 
Inherits="HijriGregDatePicker.ascx"  %>

我尝试删除继承标记,但仍然相同。

属性分配完全错误,并导致不存在的控件名称错误(不能将ascx文件扩展名用作另一个用户控件的继承基础)。使用具有相同名称的适当类名在文件命名空间后面编码,如下面的示例所示:

<%@ Control Language="C#" AutoEventWireup="true" CodeFile="HijriGregDatePicker.ascx.cs" 
Inherits="YourNamespace.HijriGregDatePicker" %>

相关问题:

因为它是一个ascx文件,所以不一定要使用代码隐藏。在ascx页面中创建一个脚本

<script runat="server">

</script>

添加runat=“server”时,脚本不会出现在浏览器源代码中。
为避免错误,请使用intellisence为
OnSelectionChange=”“

创建新控件,听起来名称空间丢失了。尝试将
codebeahind
替换为
CodeFile
,并确保提供的命名空间正确。
<%@ Register TagPrefix="dtp" TagName="HijriGregDatePicker" Src="HijriGregDatePicker.ascx" %>

<dtp:HijriGregDatePicker ID="datepicker" runat="server" ...>
</dtp:HijriGregDatePicker>
<script runat="server">

</script>