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

时间:2018-10-21 08:57:43

标签: 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 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>

我在网络上找到的一种解决方案是导入所有如下所示的网络参考

using System;
using System.Drawing;
using System.Web.Configuration;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

但这无济于事,另一个解决方案是HijriGregDatePicker.ascx

中的继承

是这样的:

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

我尝试删除了继承标签,但还是一样。

2 个答案:

答案 0 :(得分:1)

Inherits="HijriGregDatePicker.ascx"属性分配是完全错误的,并导致不存在的控件名称错误(您不能将ASCX文件扩展名用作另一个用户控件的继承基础)。使用具有相同名称的适当类名与代码隐藏文件名称空间相同,如下例所示:

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

还要注意,UserControl类继承不包含诸如asp:Calendar之类的前端可视元素,您需要使用Register指令在另一个内部使用/显示基本日历控件用户控制(请参见this issue):

<%@ Register TagPrefix="dtp" TagName="HijriGregDatePicker" Src="HijriGregDatePicker.ascx" %>

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

相关问题:How to inherit a UserControl from another UserControl?

答案 1 :(得分:0)

由于它是一个ascx文件,因此您不一定要使用后面的代码。在ascx页面上创建脚本

<script runat="server">

</script>

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

创建新控件