首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用数据库asp.net C#中的值绑定DayPilot日历

使用数据库asp.net C#中的值绑定DayPilot日历
EN

Stack Overflow用户
提问于 2012-09-14 19:47:18
回答 1查看 1.9K关注 0票数 0

我使用的DayPilot Lite3.1来自:

http://www.daypilot.org

现在我喜欢用我的sql数据库中的值填充日历,但是我不知道怎么做?

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

下面是后面的代码:

代码语言:javascript
复制
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;
        }
    }


}  

以下是我编辑之前的代码:

代码语言:javascript
复制
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;
EN

回答 1

Stack Overflow用户

发布于 2012-10-25 04:42:12

您可以使用类似以下内容:

代码语言:javascript
复制
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;

}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12423906

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档