2010-05-11 64 views
4

有沒有辦法設置日曆擴展器,以便日曆顯示文本框收到焦點時,並與何時單擊「PopupButtonID」元素被點擊?用我目前的設置,它似乎是一個或另一個。顯示Asp.net AJAX日曆擴展器的兩種方式

+0

我只是建議使用jQuery。它有一個非常優越的'DatePicker'插件。 – 2010-05-11 14:55:50

回答

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

這樣,無論您是專注於文本框還是單擊imagebutton,日曆都會顯示。

+0

可能有點難看,但我工作得很好:-) 已經嘗試過使用自定義JavaScript的其他解決方案,但最終解決方案工作得很好,但並不完美。 – 2012-10-12 08:06:02

+0

到目前爲止它是完美的解決方案:) – 2017-04-05 07:50:15

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的show()方法,通過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"/>