0

月と日数に基づいてテーブルを動的に作成するにはどうすればよいですか? たとえば、次のように 3 か月を 1 行に表示し、その月の下の 2 行目に日曜日を表示したいとします。サーバー側のコードとクライアント側のコードなどを使用する必要があるかどうかわかりません。

7
月 8月 9月 3 10 17 24 31 7 14 21 28 4 11 18 25

4

2 に答える 2

0

3 つの異なる月に設定された 3 つのカレンダー コントロールを使用するだけです。

于 2011-06-29T14:59:36.760 に答える
0

サーバー側コードまたはクライアント側コードの使用は、プロジェクトのステータスによって異なりますので、私のサンプルサーバー側コードを参照してください

コードビハインド

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>
于 2011-06-29T15:35:46.230 に答える