マイページにグリッドビュー内のテキストボックスに日付を追加する2つの方法があります。ユーザーは、日付を選択してボタンをクリックすると、すべての行の日付を設定できます。コードビハインドは各行を更新します。これはうまくいきます。今、カレンダーを各行に追加したいと思います。ajaxToolKit:gridviewの2行目でCalendarExtenderが動作しない
<%@ Register assembly="AjaxControlToolkit" namespace="AjaxControlToolkit" tagprefix="ajaxToolkit" %>
<asp:ScriptManager ID="ScriptManager1" runat="server"></asp:ScriptManager>
これはグリッドビューの外にあり、正常に動作しています。
<asp:TextBox ID="SetDateTextBox" runat="server"></asp:TextBox>
<ajaxToolkit:PopupControlExtender ID="SetDateTextBox_PopupControlExtender" runat="server" BehaviorID="SetDateTextBox_PopupControlExtender"
DynamicServicePath="" ExtenderControlID="" TargetControlID="SetDateTextBox" PopupControlID="Panel1" Position="Bottom">
</ajaxToolkit:PopupControlExtender>
<asp:Panel ID="Panel1" runat="server" Width="200px">
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<asp:Calendar ID="Calendar1" runat="server" BackColor="White" BorderColor="Black" BorderStyle="Solid" CellSpacing="1" Font-Names="Verdana" Font-Size="9pt" ForeColor="Black" Height="250px" NextPrevFormat="ShortMonth" Width="330px">
<DayHeaderStyle Font-Bold="True" Font-Size="8pt" ForeColor="#333333" Height="8pt" />
<DayStyle BackColor="#CCCCCC" />
<NextPrevStyle Font-Bold="True" Font-Size="8pt" ForeColor="White" />
<OtherMonthDayStyle ForeColor="#999999" />
<SelectedDayStyle BackColor="#333399" ForeColor="White" />
<TitleStyle BackColor="#333399" BorderStyle="Solid" Font-Bold="True" Font-Size="12pt" ForeColor="White" Height="12pt" />
<TodayDayStyle BackColor="#999999" ForeColor="White" />
</asp:Calendar>
</ContentTemplate>
</asp:UpdatePanel>
</asp:Panel>
問題が発生しました。テンプレートフィールド内の各行にcalendarExtenderを追加しました。
<asp:TemplateField HeaderText="FINISH DATE" SortExpression="SCHED_FINISH_DATE">
<EditItemTemplate>
<asp:TextBox ID="TextBox1" runat="server" Text='<%# Bind("SCHED_FINISH_DATE", "{0:d}") %>'></asp:TextBox>
</EditItemTemplate>
<ItemTemplate>
<asp:TextBox ID="FinishDateTextBox" runat="server" Text='<%# Bind("SCHED_FINISH_DATE", "{0:d}") %>' ClientIDMode="AutoID"></asp:TextBox>
<ajaxToolkit:CalendarExtender ID="FinishDateTextBox_CalendarExtender" runat="server" BehaviorID="FinishDateTextBox_CalendarExtender"
TargetControlID="FinishDateTextBox"/>
</ItemTemplate>
</asp:TemplateField>
テキストボックスClientIDModeをAutoIDに設定しました。ページはエラーなしで読み込まれます。 1行目のテキストボックスをクリックすると、カレンダーがうまくいきます。 2行目以降をクリックするとカレンダーは表示されません。
なぜあなたはAutoIDを使用していますか?データバインドされたコントロールは、デフォルトでPredictableを使用するので、それを使用する必要があります。実際には、ClientIDModeを設定しないでください。継承されているものに依存してください。 – Andrei
Andrei。私はAutoIDが他の投稿で提案されているのを見ました。私もInheritを試しましたが、やはりまだ動作しません。 – redhook99
私はgoogle chromeを実行し、HTMLを調べると、行1を超えるajaxcalender_containerはありません。これをどのようにコードするのか分かりません。このトピックについてはどこにも助けがないというのは非常に不満です。私には基本的な機能のようだ。 – redhook99