2011-11-23 29 views
2

我想根據日期(日/周/月)中使用的視圖在日曆中顯示不同數量的信息 - 以便時間塊不會太大但儘可能傳達儘可能多的信息。什麼是標準的做法呢?fullCalendar:獲取事件時向服務器發送視圖類型

我已經嘗試過在客戶端(發送所有信息並選擇性地提供所需內容)。從技術上講,它的工作原理,但我實際上不得不重寫fullCalendar的事件渲染的一部分(操縱eventRender中的元素)。我也嘗試在事件定義中將視圖名稱傳遞給服務器(無濟於事)。

我可以忽略一些明顯的東西嗎?我不認爲在第一個這樣的瑣碎的想法...

回答

1
//VIEW CHANGE - ALSO ADDS INITIAL SOURCES PER DAY VIEW 
     viewDisplay: function (view) { 
      if (lastView == undefined) { lastView = 'firstRun'; } 

      //   if (isCustomDate == 'True') { 
      //    lastView = 'basicDay'; 
      //    $('#calendar').fullCalendar('gotoDate', passedYear, passedMonth, passedDay); 
      //    } 

      if (view.name != lastView) { 
       if (view.name == 'month') { 
        if (brsEnabled == 'True') { $('#calendar').fullCalendar('removeEventSource', 'diaryFeed.aspx?style=brsComplex'); $('#calendar').fullCalendar('addEventSource', 'diaryFeed.aspx?style=brsBasic'); } 
        if (activeEnabled == 'True') { $('#calendar').fullCalendar('removeEventSource', 'diaryFeed.aspx?style=fixturesComplex'); $('#calendar').fullCalendar('addEventSource', 'diaryFeed.aspx?style=fixturesBasic'); } 
        if (previousEnabled == 'True') { $('#calendar').fullCalendar('removeEventSource', 'diaryFeed.aspx?style=previousComplex'); $('#calendar').fullCalendar('addEventSource', 'diaryFeed.aspx?style=previousBasic'); } 
        if (newsEventEnabled == 'True') { $('#calendar').fullCalendar('removeEventSource', 'diaryFeed.aspx?style=newsEvents'); $('#calendar').fullCalendar('addEventSource', 'diaryFeed.aspx?style=newsEvents'); } 
       } 
       if (view.name == 'basicDay') { 
        if (brsEnabled == 'True') { $('#calendar').fullCalendar('removeEventSource', 'diaryFeed.aspx?style=brsBasic'); $('#calendar').fullCalendar('addEventSource', 'diaryFeed.aspx?style=brsComplex'); } 
        if (activeEnabled == 'True') { $('#calendar').fullCalendar('removeEventSource', 'diaryFeed.aspx?style=fixturesBasic'); $('#calendar').fullCalendar('addEventSource', 'diaryFeed.aspx?style=fixturesComplex'); } 
        if (previousEnabled == 'True') { $('#calendar').fullCalendar('removeEventSource', 'diaryFeed.aspx?style=previousBasic'); $('#calendar').fullCalendar('addEventSource', 'diaryFeed.aspx?style=previousComplex'); } 
        if (newsEventEnabled == 'True') { $('#calendar').fullCalendar('removeEventSource', 'diaryFeed.aspx?style=newsEvents'); $('#calendar').fullCalendar('addEventSource', 'diaryFeed.aspx?style=newsEvents'); } 
       } 
       lastView = view.name; 
      } 
     }, 

,這是我發現做它 - 的唯一途徑,在服務器端我期待傳遞什麼樣的風格,然後生成JSON這應該回來..

+0

brrrr ...我明白你在做什麼,我會嘗試它(也許在週末),但它是醜陋的;我們不同意嗎? :) – fastcatch

+0

其非常醜陋 - 但相信或不是這一週搞亂 - 我不是一個硬核心JS'er-並且不想重新編碼fullcalender的核心 - 如果升級出來 - 這是醜陋的 - 但它可以在沒有黑客的情況下使用fullcalendar – ppumkin