我在使用某些 ajax 日历扩展程序时遇到问题。我有类似的 2 个日历和两个文本框,每个文本框都链接到一个日历。
<asp:TextBox ID="txt1" runat="server"</asp:TextBox>
<cc1:CalendarExtender ID="calendar1" runat="server" TargetControlID="txt1"
Format="yyyy-MM-dd" CssClass="Calendars" Enabled="false">
当我在第一个日历中选择日期时,我希望第二个日历将自己置于与第一个日历相同的月份,但不选择实际日期(因为这样做会使 txt2显示该日期)。 txt2 文本框应保持为空,直到用户在 calendar2 中选择日期为止。
我在互联网上到处寻找,但似乎没有一个适合这种情况。
有人可以帮忙吗?
编辑:
我尝试更改日期,然后使用 javascript 删除文本框,但我有一个比较验证器,当我这样做时会触发。我使用以下 JavaScript 代码来删除文本框:
function onShowingCal2(sender, e) {
var txt2 = document.getElementById('<%= txt2.ClientID %>');
var txt1 = document.getElementById('<%= txt1.ClientID %>');
var cal2 = sender;
if (txt2.value == "") {
var dateStart = new Date();
dateStart.setDate(txt1.value);
cal2.set_selectedDate(dateStart );
datechosen = false;
}
}
function onTextboxChange() {
if (!datechosen ) {
document.getElementById('<%= txt2.ClientID %>').value = "";
}
}
谢谢!
最佳答案
也许您可以设置 calendar2
的 SelectedDate
属性,但清除 txt2
的文本?
http://www.asp.net/ajaxLibrary/AjaxControlToolkitSampleSite/Calendar/Calendar.aspx
您可以使用日历的一些客户端事件。
OnClientDateSelectionChanged OnClientHidden OnClientHiding
例如,您可以定义OnClientDateSelectionChanged="onSelectChanged()
"。
function onSelectChanged()
{
alert($find('calendar1')._selectedDate);
}
所以你的代码将变成:
<cc1:CalendarExtender ID="calendar1" runat="server" TargetControlID="txt1" Format="yyyy-MM-dd" CssClass="Calendars" Enabled="false" OnClientDateSelectionChanged="onSelectChanged()">
function onSelectChanged()
{
$find('calendar2')._selectedDate = $find('calendar1')._selectedDate;
}
关于javascript - Asp.net在两个ajax calendar_extender中显示相同的日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16837068/