Синхронизация расширения календаря Ajax Toolkit

У меня есть два расширителя календаря Ajax Toolkit. Одна из них - дата начала, а другая - соответствующая дата окончания. Я бы хотел, чтобы когда в начальном календаре была выбрана дата, конечный календарь переместится к этой дате. Это звучит довольно просто, но мне было трудно добиться этого.

Кто-то избавил меня от страданий ... Как можно этого добиться?


person jckeyes    schedule 30.01.2009    source источник


Ответы (1)


вот иди, это сработало для меня

<asp:TextBox runat="server" ID="txt1" OnTextChanged="txt1_TextChanged" AutoPostBack="true"></asp:TextBox>
<ajaxToolkit:CalendarExtender runat="server" ID="cal1" TargetControlID="txt1"></ajaxToolkit:CalendarExtender>
<asp:TextBox runat="server" ID="txt2"></asp:TextBox>
<ajaxToolkit:CalendarExtender runat="server" ID="cal2" TargetControlID="txt2"></ajaxToolkit:CalendarExtender>

protected void txt1_TextChanged(object sender, EventArgs e)
{
    cal2.SelectedDate = Convert.ToDateTime(txt1.Text);
}

или вы можете сделать это через javascript, я бы рекомендовал использовать jquery, хотя для поиска текстовых полей вместо использования прямого javascript

<asp:TextBox runat="server" ID="txt1" onchange="SetEndDate()"></asp:TextBox>
<ajaxToolkit:CalendarExtender runat="server" ID="cal1" TargetControlID="txt1"></ajaxToolkit:CalendarExtender>
<asp:TextBox runat="server" ID="txt2"></asp:TextBox>
<ajaxToolkit:CalendarExtender runat="server" ID="cal2" TargetControlID="txt2"></ajaxToolkit:CalendarExtender>

  <script type="text/javascript">
        function SetEndDate()
        {
            var txt1 = document.getElementById("txt1");
            var txt2 = document.getElementById("txt2");

            txt2.value = txt1.value
        }
    </script>
person Josh Mein    schedule 30.01.2009