2013-01-17 37 views

回答

2

不,你不能輕易修改現有的日曆。但是,也許在廣告日曆上方的表格行中可以選擇年份就足夠了。

<table> 
    <tr> 
     <td> 
      <asp:DropDownList id="drpCalMonth" Runat="Server" OnSelectedIndexChanged="Set_Calendar" AutoPostBack="true"></asp:DropDownList> 
      <asp:DropDownList id="drpCalYear" Runat="Server" OnSelectedIndexChanged="Set_Calendar" AutoPostBack="true"></asp:DropDownList> 
     </td> 
    </tr> 
    <tr> 
     <td> 
      <asp:Calendar id="cntCalendar" Runat="Server" Width="100%" /> 
     </td> 
    </tr> 
</table> 

這裏有兩種方法來填充年 - 和月dropdownlists:

protected void Populate_MonthList() 
{ 
    //Add each month to the list 
    var dtf = System.Globalization.CultureInfo.CurrentCulture.DateTimeFormat; 
    for(int i=1; i<=12; i++) 
     drpCalMonth.Items.Add(new ListItem(dtf.GetMonthName(i), i.ToString())); 

    //Make the current month selected item in the list 
    drpCalMonth.Items.FindByValue(DateTime.Now.Month.ToString()).Selected = true; 
} 


protected void Populate_YearList() 
{ 
    //Year list can be changed by changing the lower and upper 
    //limits of the For statement  
    for (int intYear = DateTime.Now.Year - 20; intYear <= DateTime.Now.Year + 20; intYear++) 
    { 
     drpCalYear.Items.Add(intYear.ToString()); 
    } 

    //Make the current year selected item in the list 
    drpCalYear.Items.FindByValue(DateTime.Now.Year.ToString()).Selected = true; 
} 

您可以從Page_Load初始化列表:

protected void Page_Load(object sender, EventArgs e) 
{ 
    if (!IsPostBack) 
    { 
     Populate_MonthList(); 
     Populate_YearList(); 
    } 
} 

最後,這裏的事件處理程序爲SelectedIndexChanged事件爲DropDownLists其中設置新的Date

protected void Set_Calendar(object Sender, EventArgs e) 
{ 
    int year = int.Parse(drpCalYear.SelectedValue); 
    int month = int.Parse(drpCalMonth.SelectedValue); 
    cntCalendar.TodaysDate = new DateTime(year, month, 1); 
} 

[測試]

靈感來自:http://www.4guysfromrolla.com/articles/090104-1.aspx(VB)

+0

那肯定沒有幫助。謝謝蒂姆! :) –

+0

嘿,對於蒂姆很抱歉......我在這裏有點新鮮 –

2

嘗試以下...

<asp:Calendar ID="calender1" runat="server" VisibleDate="2012-10-10"></asp:Calendar> 
<asp:Button ID="btnMNext" runat="server" Text="Next Month" /> 
<asp:Button ID="btnMPrev" runat="server" Text="Prev Month" /> 
<asp:Button ID="btnNextYr" runat="Server" Text="Next Year" /> 
<asp:Button ID="btnPrevYr" runat="server" Text="Prev Year" /> 
<br /> 
<asp:TextBox ID="txtcur" runat="server"></asp:TextBox> 

在後面的代碼

**btnMNext_Click** 
String month; 
month = calender1.SelectMonthText(); 
txtcur.Text = calender1.SelectedDate.ToShortDateString(); 
calender1.VisibleDate = calender1.VisibleDate.AddMonths(1); 

**btnPrevYr_Click** 
    calender1.VisibleDate = calender1.VisibleDate.AddYears(-1); 


**btnNextYr_Click** 
    calender1.VisibleDate = calender1.VisibleDate.AddYears(1); 
End Sub 

**btnMPrev_Click** 
    calender1.VisibleDate = calender1.VisibleDate.AddMonths(-1); 
相關問題