做一个类似于挂历那样的备忘录,主要功能是在一个页面里显示本月的日期(类似挂历),然后他可以在每个日子里写下好多条内容,并且能修改其中的任何一条(包括添加、修改、删除),……
    可以用表格来实现么?还有换行的问题。求思路!!!

解决方案 »

  1.   

    不错的主意。使用table当然是必需的框架。换行?别忘了你的布局是固定的,不允许随意换行,而是嵌在表格中的!
      

  2.   

    asp.net不是有一个日期控件吗,就是作这个用的。很方便。
      

  3.   

    一个思路是在后台进行Table的拼装,如:
    Table table = new Table();
    TableRow tr = new TableRow();
    TableCell tc = new TableCell();
    tr.Cells.Add(tc);
    table.Rows.Add(tr);
    单元格内的具体内容通过tc的Text属性或Controls属性设置,还有其他属性可设置单元格的大小样式等。最后再将table添加到外层控件中。
      

  4.   

    随便写了一个:页面中有一个Panel控件
    protected System.Web.UI.WebControls.Panel pCalendar;页面Page_Load中加入
    DateTime dt = new DateTime(DateTime.Now.Year, DateTime.Now.Month, 1);
    int w = Convert.ToInt32(dt.DayOfWeek);
    DateTime start = dt.AddDays(-w);
    DateTime curr;Table table = new Table();
    TableRow tr = new TableRow();
    TableCell tc;string context = @"<table border='0' cellspacing='0' cellpadding='0' width='100%' height='100%'>
    <tr><td height='20'>{0}</td></tr>
    <tr><td>内容</td></tr>
    </table>";int i = 0;
    while (i < 35)
    {
    curr = start.AddDays(i); if (i % 7 == 0)
    tr = new TableRow(); tc = new TableCell();
    tc.BorderWidth = 1;
    tc.Width = new Unit("14%");
    tc.Height = 100;
    tr.Cells.Add(tc); if (start.AddDays(i).Month != dt.Month)
    tc.Text = context.Replace("{0}", "<font color='#aaaaaa'>" + curr.Day.ToString() + "</font>");
    else tc.Text = context.Replace("{0}", curr.Day.ToString()); if (i % 7 == 0)
    table.Rows.Add(tr); i++;
    }table.BorderWidth = 1;
    table.CellSpacing = 2;
    table.Width = new Unit("100%");this.pCalendar.Controls.Add(table);
      

  5.   

    谢谢reagan0127(reagan) !谢谢各位!
       我可能没有表述清楚,老板的意思是,打开这个页面就能直观地看到整个月的备忘事件,而且可以查看、编写其他月份的备忘;他希望当鼠标移动到那天时,那个日子就着重显示,单击后,可以进行修改、编辑。最重要的是界面直观、操作方便。还有一点就是,有的日子多则十几条,我担心一个屏怎么显示的开?
    <----------------->
       用panel是可以显示,可是怎么让他编辑备忘呢?我觉得还是用表格或者框架比较合适些(见笑),希望大家多给意见。
      

  6.   

    用vs.net2005 里的时间控件就可以实现.
      

  7.   

    To:  reagan0127(reagan) !     如果我这个月时31天,而下面又显示不开,应该把31放到第一行的第一个位置吧,可是,你的代码里没有反映这一现象啊?