textBox、Calendar、Button、およびUpdatefieldsを使用して、ASP.NetでDateTimePickerを作成しようとしています。
ユーザーがボタンをクリックすると、カレンダーが非表示になっているパネルが表示されます。ユーザーが日付を選択すると、カレンダーの表示がfalseになり、日付がtextBoxに割り当てられます。
私の問題は、ユーザーが月を変更したい場合に発生します。この場合、selectionChangeがトリガーされているため、カレンダーが表示されなくなります。
私の質問は、日付が選択されている場合にのみ、月の変化を見つけてパネルの非表示を制限するにはどうすればよいですか?
事前にどうもありがとうございました。
コードサンプルは次のとおりです。
前部:
<asp:UpdatePanel ID="UpdatePanel2" runat="server">
<ContentTemplate>
<asp:TextBox ID="TextBox2" runat="server" />
<asp:ImageButton ID="Imbut" runat="server" ImageUrl="imagesNew/calender.png" Height="17px" Width="17px" />
</ContentTemplate>
<Triggers>
<asp:AsyncPostBackTrigger ControlID="Calendar1" EventName="SelectionChanged" />
</Triggers>
</asp:UpdatePanel>
<br />
<br />
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<asp:Panel ID="Panel1" runat="server">
<asp:Calendar ID="Calendar1" runat="server" Height="129px" Width="209px">
</asp:Calendar>
</asp:Panel>
</ContentTemplate>
<Triggers>
<asp:AsyncPostBackTrigger ControlID="Imbut" EventName="Click" />
</Triggers>
</asp:UpdatePanel>
後部
Protected Sub Imbut_Click(ByVal sender As Object, ByVal e As EventArgs) Handles Imbut.Click
Panel1.Visible = True
End Sub
Protected Sub Calendar1_SelectionChanged(ByVal sender As Object, ByVal e As EventArgs) Handles Calendar1.SelectionChanged
TextBox2.Text = Calendar1.SelectedDate.ToString("dd/MM/yyyy")
Panel1.Visible = False
End Sub