2017-06-15 79 views
0

我已经做了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处理程序不太熟悉,但我希望我能够在正确的方向上做到这一点!

谢谢!


现在,我猜测它的东西沿着这些路线:

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
// ??? 

在这一点上你的代码,填充List<YourCustomEventClass>

然后,在你的web表单代码,您必须序列化该列表为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块。

+0

上述代码是否适合您? – mjwills