2013-07-01 64 views
0

我想改變使用jQuery與asp.net日曆控制年份和月份,但我無法改變一年。可能是壓光控制器屬性有問題。無法在jQuery中設置日曆控制Asp.Net中的日期

以下是我的代碼

$(document).ready(function() { 

    var cyear = $('#<%=Ddyear.ClientID %>'); 
    var cmonth = $('#<%=Ddmonth.ClientID %>'); 

    var cal = $('#<%=Calendar1.ClientID %>'); 
    cyear.change(function() { 
     var item = cyear.val(); 
     var item2 = cmonth.val(); 

     item = item + ',' + item2; 
     $.ajax({ 
      type: "POST", 
      url: "dashboardQuery.aspx/calanderdates", 
      data: '{item:"' + item + '"}', 
      contentType: "application/json; charset=utf-8", 
      dataType: "json", 
      success: function (response) { 
       var sdate = Date.parse(response.d, "MM/dd/yyyy"); 
       dates = sdate; 
       $('#<%=Calendar1.ClientID %>').attr('VisibleDate', sDate); 
      }, 
      error: function() { 
       alert(msg.status); 
      } 
     }); 
    }); 
}); 

回答

0

您不能設置VisibleDate屬性通過jQuery的一個ASP.Net日曆,這是一個服務器端的屬性,這樣的事,在生成的HTML沒有VisibleDate財產。

你可以改變你的代碼改變對服務器端的日期代替,像這樣的工作:

<asp:DropDown runat="server" ID="Ddmonth" OnSelectedIndexChanged="Ddmonth_SelectedIndexChanged" /> 

代碼隱藏:

protected sub Ddmonth_SelectedIndexChanged(object sender, EventArgs e) 
{ 
    // depending on what is in your drop down list will affect this code 
    // this code assumes that you are listing the months by number, e.g. 1 for January, 2 for February, etc. 
    int selectedMonth = int.Parse(DdMonth.SelectedValue); 
    int monthsToAdd = selectedMonth - Calendar1.VisibleDate.Month; 
    Calendar1.VisibleDate = Calendar1.VisibleDate.AddMonths(monthsToAdd); 
} 
+0

肖恩您好,感謝重播。我還使用$('#<%= Calendar1.ClientID%>')來處理客戶端控件。attr('VisibleDate',sDate);但它仍然不起作用 – user2473112

+0

VisibleDate永遠不會工作。它不是客戶端屬性,它只存在於服務器端代碼中。你可以發佈你的''控件的標記嗎? – Sean

+0

好吧,我已經看了一下日曆控件的呈現標記,並記得爲什麼我停止使用它們,它們吸吮。你想達到什麼目的?也許你可以使用比日曆控件更靈活的東西。如果你只是用它來選擇日期,你可能想看看像這樣:http://jqueryui.com/datepicker/ – Sean