我使用的DayPilot Lite3.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;发布于 2012-10-25 04:42:12
您可以使用类似以下内容:
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;
}https://stackoverflow.com/questions/12423906
复制相似问题