【问题标题】:Bind Checkboxlist with next 7 days Date Value将复选框列表与接下来 7 天的日期值绑定
【发布时间】:2020-02-05 17:06:26
【问题描述】:

我的页面中有一个CheckboxList,我想在我的列表中动态绑定接下来 7 天(不是今天)的值。我应该以右下图所示的格式插入该值,当我以aspx 显示页面时,我想显示日期和日期,如第一个图像格式所示。

所有动态绑定都使用Page_Load()执行

<asp:CheckBoxList ID="CheckBoxList1" runat="server"></asp:CheckBoxList>

【问题讨论】:

    标签: c# asp.net checkbox checkboxlist


    【解决方案1】:

    好吧,据我了解,您希望以dayOfWeek year-month-day 格式显示未来 7 天的列表。这是一种方法:

    CheckBoxList应该是这样的:

    <asp:CheckBoxList ID="CheckBoxList1" runat="server" DataTextField="date"   
            DataValueField="Id" /* Other Attributes */>
    </asp:CheckBoxList> 
    

    这应该是绑定它的方法:

    public void BindCheckBoxListWithNextSevenDays()
    {
        DateTime today = DateTime.Now;
    
        DataTable dt = new DataTable();
        dt.Columns.Add("Id", typeof(int));
        dt.Columns.Add("date", typeof(string));
    
        for(int i = 1; i <= 7; i++)
        {
            dt.Rows.Add(i, today.AddDays(i).ToString("dddd yyyy-MM-dd")); // (dddd yyyy-MM-dd) will return the date in following format (Wednesday 2020/02-05)
        }
        CheckBoxList1.DataSource = dt;  
        CheckBoxList1.DataBind();
    }
    

    【讨论】:

      【解决方案2】:

      编辑#2:

      public void BindCheckBoxList()
      {
          IEnumerable<string> dates=Enumerable.Range(1, 7).Select(p=>DateTime.Now.Date.AddDays(p).ToString("dddd HH:mm:ss"));
              CheckBoxList1.DataSource = dates;  
              CheckBoxList1.DataBind();
      }
      

      V#1

      创建一个方法,以您喜欢的格式返回列表中的日期,

      static IEnumerable<string> DatsOnInterval(DateTime from, DateTime thru,int dateInterval=1)
          {
              for(var day = from.Date; day.Date <= thru.Date; day = day.AddDays(dateInterval))
                  yield return day.DayOfWeek.ToString()+" "+day.Date.ToString("dd-MM-yyyy HH:mm:ss");
          }
      

      这样调用它并填写复选框列表,

      public static void Main()
          {
      
              try
              {
              var fromDt=DateTime.Now.AddDays(1);
              var toDt=fromDt.AddDays(7);
          var datas=DatsOnInterval(fromDt,toDt);
                  foreach(var x in datas)
                  {
                      Console.WriteLine(x);
                  }
      
              }
              catch(Exception ex)
              {
                  Console.WriteLine(ex.Message);
              }
          }
      

      【讨论】:

      • 感谢您的回复。我试着给你更新。
      • 我不会用这种方式来连接日期,而我可以使用ToString("dddd yyyy-MM-dd") 方法。
      • 感谢@JamshaidKamran 先生和“A_Sk”先生的回复,它现在正在运行。我更新鲜,并且在堆栈溢出中我有 11 个声誉,所以我不知道我的赞成票是否被计算在内,但感谢两位先生。
      • @A_Sk 先生,我已经尝试过您的代码,它显示错误“System.String”不包含名为“日期”的属性。
      猜你喜欢
      • 2013-03-25
      • 2013-12-04
      • 2012-11-30
      • 1970-01-01
      • 1970-01-01
      • 2021-11-27
      • 2017-07-13
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多