2014-12-19 74 views
0

我有一個簡單的目標。我可以通過創建一個乾淨的項目來模擬這個問題。在asp.net日曆擴展器上設置正確的日期

問題是,我不能設置asp.net calendarExtender顯示日期(當打開時)正確設置動態文本框上的日期。

下面是一個代碼:

HTML:

<asp:Button 
    ID="Button1" 
    runat="server" 
    Text="2013" 
    OnClientClick="SetDate(0);return false;" /> 

<asp:Button 
    ID="Button2" 
    runat="server" 
    Text="2015" 
    OnClientClick="SetDate(1);return false;" /> 

<br /> 

<asp:TextBox 
    runat="server" 
    ID="tbDate"></asp:TextBox> 

<asp:CalendarExtender 
    ID="clDate" 
    runat="server" 
    Enabled="True" 
    BehaviorID="calendarExtender" 
    TargetControlID="tbDate"> 
</asp:CalendarExtender> 

的JavaScript:

var Data = (function() { 
    var _items = [{ ID: 1, Date: "19/12/2013" }, 
        { ID: 2, Date: "19/12/2015" }]; 

    function _GetAll() {           
     return _items; 
    } 

    function _GetByID(itemID) { 
     var o = $.grep(_items, function (el, i) { 
      return el.ID === itemID; 
     }); 

     return o[0]; 
    } 

    return { 
     GetByID: _GetByID, 
     GetAll: _GetAll 
    } 
})(); 

function SetDate(itemID) { 

    var item = Data.GetByID(itemID); 

    var stringDate = item.Date; 
    var objectDate = Date.parseLocale(item.Date, "dd/MM/yyyy"); 

    $("#tbDate").val(stringDate); 

    $find("calendarExtender").set_selectedDate(objectDate); 

} 

,因爲它得到這應該是簡單,但控制接縫處有它自己的行爲。 從我的結論,顯示日期(打開時)它總是假定最後選擇的日期。無論你做什麼。

一些scenarious:在文本框

  • 方案1

    1負載頁

    2,點擊,打開日曆擴展。

    3日曆擴展器假定當前日期。

    4按一下2013按鈕,文本框更新到2013年的日期。

    在文本框5依序按一下,打開日曆劑.....仍然具有2014(當前日期)

  • 方案2

    2013上的按鈕1-負載 第2頁單擊,文本框更新至2013年的日期。

    3單擊文本框,打開日曆擴展程序。

    4日曆擴展器假定爲2013(正確日期)。

    5按一下2015按鈕,文本框更新到2015年的日期。

    3-點擊文本框,打開日曆劑.....仍然具有2013(第一日)

  • SCENARIO 3

    (同2,但與按鈕2015開始點擊)

  • SCENARIO 4

    1-負載頁

    2-點擊按鈕2013,文本框被更新爲2013的日期(DOñ OT點擊文本框)。

    3按2015按鈕,文本框更新至2015年的日期。

    4,點擊文本框,打開日曆擴展程序.....假設2015年(最後一天)

注意:如果我

alert($find("calendarExtender").get_selectedDate()); 

,其正確的動態顯示當前設定的日期。但顯示屏不會刷新。

這是正確的行爲嗎?我錯過了什麼嗎?

我該如何讓它假設正確的日期?

回答

0

好吧,我做了一些更多的測試,發現只有在發佈回發時可視化纔會更新。

因爲我試圖避免發佈後備.....只是去爲jquery datepicker。