我已经将自定义控件导入 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=""
创建新的控件