在完整日历中显示数据库中的条目



我制作了一个WebForms页面,每个员工都可以在其中输入,当他们去度假时,然后向MS SQL数据库提交一个条目:

Name         | StartDate | EndDate
varchar(250) | datetime  | datetime

但是现在我完全陷入了如何正确格式化并将其提供给事件的问题,因此我可以在另一页上的日历上显示它。

我对这样的硬编码事件没有问题:

<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 提要或 .ashx 处理程序都不太熟悉,但我希望我能够朝着正确的方向推动!

谢谢!


现在我猜它是这样的:

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();
        }
    }
 //  ???

此时,在代码中,填充一个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块。

相关内容

  • 没有找到相关文章

最新更新