2017-06-15 69 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