在两个ajax calendar_extender中显示相同的日期

Asp.net displaying the same date in two ajax calendar_extender

本文关键字:显示 extender 日期 calendar ajax 两个      更新时间:2023-09-26

我有一些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显示该日期)。textt2文本框应该保持空,直到用户在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 = "";
            }
        }

谢谢!

也许您可以设置calendar2SelectedDate属性,但清除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代码并添加一个非常简单的函数:

        function EndDateChosen(e) {
        dateChosen = true;
    }

在calendar2标签的属性OnClientDateSelectionChanged='EndDateChosen'

那个事件是一个痛苦的工作。javascript函数必须只有一个参数,并且日历标签中的函数名必须用单引号包围,而不是双引号。

谢谢yall !