2013-04-08 48 views
0

我正面臨CalendarExtendar控件隱藏功能的問題。CalendarExtender在日曆外點擊時沒有隱藏

我在圖像上單擊顯示日曆。它隱藏,如果我選擇一個日期;但是當我不想從日曆中選擇任何日期時,它不會隱藏。

我發現這隻發生在我的應用程序中。我試着在示例應用程序中使用相同的控件,它工作正常。

難道是因爲我的項目有MasterPage嗎?

請建議。

回答

0

您可以試試這個 您需要處理onmouseout事件。你可以這樣來做:

http://forums.asp.net/p/1182269/4708411.aspx/1?Re+Calendarextender+and+Lose+Focus+Or+Mouse+Out

或者你也可以添加一些JavaScript(通過jQuery),注入的onmouseout事件:

添加額外的功能,圖像的的onmouseout屬性 鏈接Adding extra functions to an image's onmouseout attribute

這也顯示在forums.asp.net鏈接中,但基本上,在onmouseout事件中,您可以將日曆擴展程序的可見性設置爲隱藏或無。

--------------------------OR CAN TRY BELOW CODE----------------------------- 

    function calenderShow(sender,args){ 

     var calendar=$find('bi'); 
     calendar._container.onblur=function(){ 
     calendar.hide(); 
      }; 
     } 
+0

我認爲你使用而不是它對你有幫助 – user2084072 2013-04-08 16:16:59

0

可以試試這個TOO 如上所述,除了由破折號提供的解決方案的選擇,你可以使用以下的決定,如果你不想使用的ImageButton,而不是圖片的彈出式按鈕:在擴展設置OnClientShowing屬性「 hideAnotherOpenedPoups「並添加到下面的頁面腳本中。

// Array of BehaviorIds of each extender for those you use Image as PopupButton 
var behaviorIds = ["CalendarExtender1", "CalendarExtender2"]; 

function hideAnotherOpenedPoups(sender) { 
    for (var index = 0; index < behaviorIds.length; index++) { 
      if (behaviorIds[index] !== sender.get_id()) { 
       var extender = $find(behaviorIds[index]); 
       if (extender.get_isOpen()) { 
        extender.hide.call(extender); 
       } 
      } 
    } 

}

0

我花了一個TextBox控件&一個日曆控件,但點擊壓延日期頁回發發生後,之後壓延沒有隱藏。我嘗試了他們所有的方式,但它從來沒有工作。請查找以下代碼。

<asp:TextBox ID="txtFromDateSubmit" runat="server" TabIndex="7" CssClass="calendar" OnTextChanged="txtFromDateSubmit_TextChanged" AutoPostBack="True" MaxLength="12" AutoCompleteType="Disabled"></asp:TextBox> 
<asp:CalendarExtender ID="ceBatchDateSubmit" runat="server" Format="dd/MM/yyyy" TargetControlID="txtFromDateSubmit"></asp:CalendarExtender> 

之後錯誤我刪除的TabIndex,它的開始爲我工作。如果你們有同樣的問題,它與我的代碼相匹配,你可以試試。