【问题标题】:Databinding DayPilot Calendar with value from database asp.net C#具有来自数据库 asp.net C# 的值的数据绑定 DayPilot 日历
【发布时间】:2012-09-14 11:47:18
【问题描述】:

我使用 DayPilot Lite 3.1 来自:

http://www.daypilot.org

现在我想用我的 sql 数据库中的值填充日历,但我不知道如何?

你能帮我吗,我需要在受保护的 DataTable getData() 中写什么?

下面是代码:

namespace Rezervacii{

public partial class Events : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            DayPilotCalendar1.StartDate = firstDayOfWeek(DateTime.Now, DayOfWeek.Sunday);
            DayPilotCalendar1.DataSource = getData();
            DataBind();
        }

    }
    protected DataTable getData()
    {

        SqlConnection con = new SqlConnection();
        con.ConnectionString = @"Data Source=.\SQLEXPRESS;Initial Catalog=Korisnik;Integrated Security=True";
        SqlDataAdapter da = new SqlDataAdapter("SELECT [id], [name], [startevent], [endevent] FROM [Event] WHERE id=@id , name=@name, startevent=@startevent, endevent=@endevent", con);

        DataTable dt;
        dt = new DataTable();
        da.Fill(dt);

       return dt;

    }


    private static DateTime firstDayOfWeek(DateTime day, DayOfWeek weekStarts)
    {
        DateTime d = day;
        while (d.DayOfWeek != weekStarts)
        {
            d = d.AddDays(-1);
        }

        return d;
    }
    protected void DayPilotCalendar1_BeforeEventRender(object sender, DayPilot.Web.Ui.Events.Calendar.BeforeEventRenderEventArgs e)
    {
        string color = e.DataItem["color"] as string;
        if (!String.IsNullOrEmpty(color))
        {
            e.DurationBarColor = color;
        }
    }


}  

这是我编辑之前的代码:

protected DataTable getData()
{
    DataTable dt;
    dt = new DataTable();
    dt.Columns.Add("start", typeof(DateTime));
    dt.Columns.Add("end", typeof(DateTime));
    dt.Columns.Add("name", typeof(string));
    dt.Columns.Add("id", typeof(string));
    dt.Columns.Add("color", typeof (string));

    DataRow dr;

    dr = dt.NewRow();
    dr["id"] = 0;
    dr["start"] = Convert.ToDateTime("15:50");
    dr["end"] = Convert.ToDateTime("15:55");
    dr["name"] = "Event 1";
    dt.Rows.Add(dr);
    return dt;

【问题讨论】:

    标签: asp.net visual-studio-2010 data-binding calendar daypilot


    【解决方案1】:

    你可以这样使用:

    protected DataTable getData()
    {
    
        SqlConnection con = new SqlConnection();
        con.ConnectionString = @"Data Source=.\SQLEXPRESS;Initial Catalog=Korisnik;Integrated Security=True";
        SqlDataAdapter da = new SqlDataAdapter("SELECT [id], [name], [startevent], [endevent] FROM [Event] WHERE NOT (([endevent] <= @start) OR ([startevent] >= @end))", con);
        da.SelectCommand.Parameters.AddWithValue("start", DayPilotCalendar1.StartDate);
        da.SelectCommand.Parameters.AddWithValue("end", DayPilotCalendar1.EndDate.AddDays(1));
    
        DataTable dt;
        dt = new DataTable();
        da.Fill(dt);
    
       return dt;
    
    }
    

    【讨论】:

      猜你喜欢
      • 2012-02-08
      • 1970-01-01
      • 1970-01-01
      • 2015-07-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多