以前は AjaxControlToolKit.Dll のアセンブリ バージョン 1.0.10301.0 を使用していたフォームがあり、4.1.7.607 などの新しいバージョンにアップグレードすると、CalendarExtender オブジェクトが機能しなくなり、カレンダー ボタンがドロップ ダウン風の選択オブジェクトを作成しなくなります。私のコードでは何も変更されていません。サード パーティの dll だけが 764KB から 6.5MB に跳ね上がりました。
問題は、同じ ID の画像が複数ある場合 (私は 3 つ持っています)、この問題が発生することです。ソース:画像をクリックしてもカレンダー コントロールがポップアップしない
実際のフォームが動的に作成されるため、CalendarExtender の複数のインスタンスを .ascx で「ハードコーディング」し、.cs で呼び出してこの問題を回避することはできません。たとえば、このdateCalしか持てません。同じ ID の複数のインスタンスを許可する何らかのフラグなど、最新バージョンの Dll にアップグレードできるこの問題を解決する方法はありますか?
コード:
<%@ 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 'アップグレード':