2

我对一些 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 = "";
            }
        }

谢谢!

4

2 回答 2

2

也许您可以设置 的SelectedDate属性calendar2但清除 的文本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;
}
于 2013-05-30T13:11:18.037 回答
0

我终于得到了一些工作

我所做的是我在问题中使用了 javascript 代码并添加了一个非常简单的函数:

        function EndDateChosen(e) {
        dateChosen = true;
    }

并在 calendar2 标记的属性 OnClientDateSelectionChanged='EndDateChosen' 中这样调用

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

谢谢你们!

于 2013-05-30T14:38:28.483 回答