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



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

错误 CS0103 名称"ctl日历本地化"在 当前上下文证书\证书\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>

我在网络上找到的解决方案之一是导入所有 Web 引用,如下所示

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"  %>

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

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

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

还值得注意的是,UserControl类继承不包括像asp:Calendar这样的前端可视元素,你需要使用Register指令来使用/显示另一个用户控件中的基准日历控件(请参阅此问题(:

<%@ Register TagPrefix="dtp" TagName="HijriGregDatePicker" Src="HijriGregDatePicker.ascx" %>
<dtp:HijriGregDatePicker ID="datepicker" runat="server" ...>
</dtp:HijriGregDatePicker>

相关问题: 如何从另一个用户控件继承用户控件?

由于它是一个 ascx 文件,因此您不一定使用代码隐藏。直接在 ascx 页中创建脚本

<script runat="server">
</script>

添加 runat="server" 时,脚本不会出现在浏览器源代码中。 为避免错误,请使用智能为OnSelectionChange=""创建新的控件

最新更新