2010-05-11 3 views
4

Есть ли способ настроить расширитель календаря так, чтобы календарь отображался, когда текстовое поле получает фокус и когда когда щелкнут элемент с «PopupButtonID»? С моими текущими настройками он кажется тем или иным.Отображение Asp.net AJAX Calendar Extender Two Ways

+0

Я просто предлагаю использовать JQuery. Он имеет гораздо более совершенный плагин DatePicker. –

ответ

6

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

<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" /> 

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

+0

Может быть немного уродливым, но я отлично работаю :-) Попробовали другие решения, используя пользовательский javascript, но только закончили с решениями, работающими почти нормально, но не идеально. –

+0

На сегодняшний день это идеальное решение :) –

2

Не то, чтобы я знал; это тот или другой. Единственный способ, которым я могу подумать, - установить его для использования всплывающего элемента управления, а затем добавить обработчик событий 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% уверены.

HTH.

2

Используйте метод 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"/> 
Смежные вопросы