【问题标题】:Show entries from database in fullCalendar在 fullCalendar 中显示数据库中的条目
【发布时间】:2017-06-15 14:11:59
【问题描述】:

我制作了一个 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-feeds 或 .ashx-handlers 都不太熟悉,但我希望我能够朝着正确的方向努力!

谢谢!


现在我猜是这样的:

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

【问题讨论】:

    标签: c# asp.net sql-server webforms fullcalendar


    【解决方案1】:
     //  ???
    

    此时,在您的代码中填充一个 List&lt;YourCustomEventClass&gt;

    然后,在您的 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 块。

    【讨论】:

    • 感谢这位朋友 - 我正在努力思考如何将这个 webapp 链接到我的 dB,这会有所帮助(有点)!
    猜你喜欢
    • 2019-02-20
    • 1970-01-01
    • 1970-01-01
    • 2020-02-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-02
    • 2013-02-18
    相关资源
    最近更新 更多