我已将自定义控件导入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" %>
我尝试删除了继承标签,但还是一样。
答案 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>
答案 1 :(得分:0)
由于它是一个ascx文件,因此您不一定要使用后面的代码。在ascx页面上创建脚本
<script runat="server">
</script>
添加runat =“ server”时,脚本不会出现在浏览器源代码中。
为避免错误,请使用智能功能为OnSelectionChange=""