我有一个以前使用AjaxControlToolKit.Dll的汇编版本1.0.10301.0的表单,当升级到4.1.7.607等较新版本时,CalendarExtender对象停止工作,因为日历按钮不再创建下拉式选择对象。我的代码没有任何变化,只有第三方dll从764KB跳到了~6.5MB。
问题似乎是如果有多个具有相同ID的图像(我有三个),则会出现此问题。资料来源:Calendar control is not popping-up when clicked on image
由于创建实际表单的动态方式,我不可能在.ascx中“硬编码”几个CalendarExtender实例并在.cs中调用它们以防止出现此问题;例如,我只能拥有这个dateCal。有没有办法解决这个问题,仍然允许我升级到最新版本的Dll,比如允许同一个ID的多个实例的某种标志?
的代码:
<%@ Control Language="C#" AutoEventWireup="true" CodeFile="DateTb.ascx.cs" Inherits="DateTb" %>
<%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="ajx" %>
<asp:TextBox ID="dateTb" runat="server" Width="125px" MaxLength="1000"></asp:TextBox>
<asp:image id="dateImg" runat="server" imageurl="~/images/calendar.png" />
<ajx:CalendarExtender ID="dateCal" runat="server" PopupButtonID="dateImg" TargetControlID="dateTb"></ajx:CalendarExtender>
<asp:CompareValidator id="dateValidator" runat="server" Type="Date" Operator="DataTypeCheck" ControlToValidate="dateTb" ErrorMessage="Please enter a valid date." ValidationGroup="validate" Text="*" > </asp:CompareValidator>
<asp:RequiredFieldValidator ID="dateRequired" runat="server" ControlToValidate="dateTb" Text="*" ErrorMessage="Please enter a valid date." ValidationGroup="validate"></asp:RequiredFieldValidator>
表格预先DLL'升级':
表单后DLL'升级':