Отображение Asp.net AJAX Calendar Extender двумя способами - PullRequest
4 голосов
/ 11 мая 2010

Есть ли способ настроить расширитель календаря, чтобы календарь отображался, когда текстовое поле получает фокус, И когда, когда нажимается элемент с «PopupButtonID»? С моими текущими настройками, кажется, один или другой.

Ответы [ 3 ]

6 голосов
/ 11 мая 2010

Это немного уродливый способ сделать это, но вы можете сделать это, если вы готовы использовать два экстендера.

<asp:TextBox runat="server" ID="DateTextBox" />
<asp:ImageButton runat="server" ID="CalendarImageButton" ImageUrl="~/date_16x16.gif" />
<ajaxtoolkit:CalendarExtender runat="server" id="Extender1" TargetControlID="DateTextBox"/>
<ajaxtoolkit:CalendarExtender runat="server" ID="Extender2" TargetControlID="DateTextBox" PopupButtonID="CalendarImageButton" />

Таким образом, календарь будет отображаться независимо от того, фокусируете ли вы на текстовом поле или нажимаете кнопку изображения.

2 голосов
/ 30 марта 2012

Используйте метод showEx для CalendarExtender, ссылаясь на него по BehaviorID:

<asp:TextBox runat="server" ID="DateTextBox" />
<asp:ImageButton runat="server" ImageUrl="~/date_16x16.gif" OnClientClick="$find('Extender1').show();return false;" />
<ajaxtoolkit:CalendarExtenderrunat="server" id="Extender1" BehaviorID="Extender1" TargetControlID="DateTextBox"/>
2 голосов
/ 11 мая 2010

Не то, чтобы я знал; это одно или другое. Единственный способ, о котором я могу подумать, - это настроить его на использование всплывающего элемента управления, затем добавить обработчик событий JS для фокуса текстового поля и вручную найти расширитель календаря, и может быть метод show (), чтобы вы могли вручную вызвать триггер потенциально. Не уверен на 100%. Чтобы узнать, сделайте:

function textboxFocus() {
    var c = $find("<%= calextenderid.ClientID %>");
    //can use firebug to see if c.open method exists, or check for something else
}

Опять же, никогда не делал этого, поэтому не уверен на 100%.

НТН.

...