如何根据月份和天数动态创建表格?例如,我想在一行显示滚动的 3 个月,然后在第二行显示星期天,如下所示。不确定我应该使用服务器端代码还是客户端代码等。
七月 八月 九月
3 10 17 24 31 7 14 21 28 4 11 18 25
如何根据月份和天数动态创建表格?例如,我想在一行显示滚动的 3 个月,然后在第二行显示星期天,如下所示。不确定我应该使用服务器端代码还是客户端代码等。
七月 八月 九月
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>