2013-08-02 37 views

回答

5

您可以設置日曆的代碼VisibleDate屬性來顯示相應的月份,比如:

<asp:DropDownList runat="server" ID="ddlMonth" AutoPostBack="true" OnSelectedIndexChanged="SetCalendarVisibleDate"> 
    <asp:ListItem Text="January" Value="1" /> 
    <asp:ListItem Text="February" Value="2" /> 
    <asp:ListItem Text="March" Value="3" /> 
    <asp:ListItem Text="April" Value="4" /> 
    <asp:ListItem Text="May" Value="5" /> 
    <asp:ListItem Text="June" Value="6" /> 
    <asp:ListItem Text="July" Value="7" /> 
    <asp:ListItem Text="August" Value="8" /> 
    <asp:ListItem Text="September" Value="9" /> 
    <asp:ListItem Text="October" Value="10" /> 
    <asp:ListItem Text="November" Value="11" /> 
    <asp:ListItem Text="December" Value="12" /> 
</asp:DropDownList> 

<asp:DropDownList runat="server" ID="ddlYear" AutoPostBack="true" OnSelectedIndexChanged="SetCalendarVisibleDate"> 
    <asp:ListItem Text="2011" Value="2011" /> 
    <asp:ListItem Text="2012" Value="2012" /> 
    <asp:ListItem Text="2013" Value="2013" /> 
    <asp:ListItem Text="2014" Value="2014" /> 
    <asp:ListItem Text="2015" Value="2015" /> 
</asp:DropDownList> 

<asp:Calendar runat="server" ID="cal1" /> 

然後在你的後臺代碼,我們只需要添加下面的事件處理程序OnSelectedIndexChanged事件的DropDownLists:

protected void SetCalendarVisibleDate(object sender, EventArgs e) 
{ 
    cal1.VisibleDate = new DateTime(int.Parse(ddlYear.SelectedValue), 
            int.Parse(ddlMonth.SelectedValue), 
            1); 
} 

VisibleDate財產的MSDN文章:http://msdn.microsoft.com/en-us/library/1adzhse7(v=vs.100).aspx

1

這是我的樣本,希望它有幫助,感謝

https://dotblogs.com.tw/mis2000lab/2014/08/06/calendar_postback_20140806

protected void Page_Load(object sender, EventArgs e) 
 
    { 
 
     if (!Page.IsPostBack) 
 
     { 
 
      int myYear = System.DateTime.Now.Year; 
 

 
      for (int i = 0; i < 101; i++) 
 
      { 
 
       DropDownList1.Items.Add((myYear - i).ToString()); 
 
      } 
 
     } 
 

 
    } 
 

 

 
    protected void DropDownList2_SelectedIndexChanged(object sender, EventArgs e) 
 
    { 
 
     Calendar1.VisibleDate = new DateTime(Convert.ToInt32(DropDownList1.SelectedValue), Convert.ToInt32(DropDownList2.SelectedValue), 1); 
 
    }