我已经创建了一个WebForms页面,每个员工在休假时都可以输入,然后将条目提交到MS SQL数据库:
Name | StartDate | EndDate
varchar(250) | datetime | datetime
但是现在我完全陷入了如何正确格式化并提供给事件,所以我能够在另一页的日历上显示它.. < / p>
我对像这样的硬编码事件没有任何问题:
<body>
<form id="form1" runat="server">
<div>
<div id='calendar'></div>
</div>
</form>
<script>
$('#calendar').fullCalendar({
events: [
{
title: 'Curt',
start: '2017-06-16'
},
{
title: 'George',
start: '2017-06-05',
end: '2017-06-08'
},
{
title: 'Susan',
start: '2017-06-03',
end: '2017-06-09'
}
],
eventColor: 'royalblue'
});
</script>
我对JSON-feeds或.ashx-handlers不太熟悉,但我希望我能够通过推动正确的方向来做到这一点!
谢谢!
现在我猜测它是这样的:&/ p>
public string GetConnectionString()
{
return System.Configuration.ConfigurationManager.ConnectionStrings["calendarConnectionString"].ConnectionString;
}
protected void Page_Load(object sender, EventArgs e)
{
}
private void GetHolidaysFromDatabase(object sender, EventArgs e)
{
SqlConnection conn = new SqlConnection(GetConnectionString());
string sql = "SELECT * FROM EmployeeHoliday";
try
{
conn.Open();
SqlCommand cmd = new SqlCommand(sql, conn);
// ???
}
catch (System.Data.SqlClient.SqlException ex)
{
string msg = "Error: ";
msg += ex.Message;
throw new Exception(msg);
}
finally
{
conn.Close();
}
}
答案 0 :(得分:1)
// ???
在您的代码中,填充List<YourCustomEventClass>
。
然后,在您的webforms代码中,您需要使用以下内容将该列表序列化为JS数组:
<script>
$('#calendar').fullCalendar({
events: <%= DataAsJson %>,
eventColor: 'royalblue'
});
</script>
在您的C#代码中:
public string DataAsJson
{
get
{
var serializeObject = new JavaScriptSerializer() { MaxJsonLength = int.MaxValue }.Serialize(YourListHere);
return serializeObject;
}
}
此外,在不相关的注释上 - 使用https://stackoverflow.com/a/278924/34092而不是finally
阻止。