月と日数に基づいてテーブルを動的に作成するにはどうすればよいですか? たとえば、次のように 3 か月を 1 行に表示し、その月の下の 2 行目に日曜日を表示したいとします。サーバー側のコードとクライアント側のコードなどを使用する必要があるかどうかわかりません。
7
月 8月 9月 3 10 17 24 31 7 14 21 28 4 11 18 25
月と日数に基づいてテーブルを動的に作成するにはどうすればよいですか? たとえば、次のように 3 か月を 1 行に表示し、その月の下の 2 行目に日曜日を表示したいとします。サーバー側のコードとクライアント側のコードなどを使用する必要があるかどうかわかりません。
7
月 8月 9月 3 10 17 24 31 7 14 21 28 4 11 18 25
3 つの異なる月に設定された 3 つのカレンダー コントロールを使用するだけです。
サーバー側コードまたはクライアント側コードの使用は、プロジェクトのステータスによって異なりますので、私のサンプルサーバー側コードを参照してください
コードビハインド
protected void Page_Load(object sender, EventArgs e)
{
List<Int32> Months = new List<Int32>() { 7, 8, 9 };
if (!IsPostBack)
{
gv.DataSource = Months;
gv.DataBind();
}
}
protected void gv_DataBinding(Object sender, RepeaterItemEventArgs e)
{
if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
{
Literal ltrMonth = e.Item.FindControl("ltrMonth") as Literal;
DateTime _date = new DateTime(DateTime.Now.Year, (Int32)e.Item.DataItem, 1);
ltrMonth.Text = _date.ToString("MMMM");
DateTime temp;
List<Int32> sundays=new List<Int32>();
for(var i=1;i<32;i++)
{
if(DateTime.TryParse(_date.Year+"/"+_date.Month+"/"+i,out temp))
{
if(temp.DayOfWeek==DayOfWeek.Sunday)
{
sundays.Add(i);
}
}
}
Repeater rptrSunday = e.Item.FindControl("rptrSunday") as Repeater;
rptrSunday.DataSource = sundays;
rptrSunday.DataBind();
}
}
protected void rptrSunday_DataBinding(Object sender, RepeaterItemEventArgs e)
{
if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
{
Literal ltrDay = e.Item.FindControl("ltrDay") as Literal;
ltrDay.Text = e.Item.DataItem.ToString();
}
}
ASPX
<asp:Repeater runat="server" ID="gv" OnItemDataBound="gv_DataBinding">
<HeaderTemplate>
<table>
<tr>
</HeaderTemplate>
<ItemTemplate>
<td>
<asp:Literal runat="server" ID="ltrMonth"></asp:Literal>
<table>
<tr>
<td>
<asp:Repeater runat="server" ID="rptrSunday" OnItemDataBound="rptrSunday_DataBinding">
<ItemTemplate>
<asp:Literal runat="server" ID="ltrDay"></asp:Literal></ItemTemplate>
</asp:Repeater>
</td>
</tr></table>
</td>
</ItemTemplate>
<FooterTemplate>
</tr>
</table></FooterTemplate>
</asp:Repeater>