2014-03-25 38 views
1

CalendarExtender觸發目標點擊事件。所以,如果你需要打開日曆擴展當文本框獲得焦點(如與TAB鍵)它不會工作只是本身。在文本框焦點上觸發Asp.net CalendarExtender

<asp:textbox id="textBoxId" runat="server" /> 
<asp:RangeValidator id="valDatumRG" ControlToValidate="textBoxId" Type="Date" ... ValidationGroup="valGr" Display="dynamic" runat="server" /> 
<ajaxToolkit:CalendarExtender ID="cldExtTermin" runat="server" TargetControlID="textBoxId" PopupButtonID="textBoxId" /> 

回答

1

CalendarExtender控制

+0

大聲笑,這當然是最簡單的方法。誰會說papup控制不是必需的。 – Zivko

0

您需要添加方法,當texbox獲得焦點或丟失時,將觸發點擊事件。

textBoxId.Attributes.Add("onblur", "ValidatorOnChange(event);") 
textBoxId.Attributes.Add("onfocus", "this.click();") 
0

刪除PopupButtonID屬性,你可以觸發彈出按鈕,點擊文本框的焦點都在CalendarExtender。嘗試下面的代碼行以在文本框和圖像單擊上顯示日曆。

<asp:TextBox runat="server" onclick="showCalendar();" onfocusout="showCalendar();" ID="txtDate" /> 
    <asp:ImageButton runat="Server" ID="imgPopup" AlternateText="Click to show calendar" /> 
    <cc1:CalendarExtender ID="CalendarExtender1" runat="server" TargetControlID="txtDate" CssClass="MyCalendar" Format="MMMM d, yyyy" PopupButtonID="imgPopup" /> 

並添加JavaScript函數這樣

<script type="text/javascript"> 
     function showCalendar() { 
     $("#<%=imgPopup.ClientID %>").trigger("click"); //I've used .ClientID here just in case your page is inherited from a Master page 
    } 
    </script> 

當你點擊文本框應顯示日曆,一旦你點擊其他地方窗體上的日曆將被隱藏