2013-08-06 55 views
1

我目前正在使用偉大的Jquery插件 - Fullcalendar,但我遇到了一個問題。我使用eventDrop監聽器,並且我想使用Ajax將事件信息發送到服務器端。Fullcalendar Event drop和ajax

我的代碼如下:

eventDrop: function (event, dayDelta) { 

       $.ajax({ 
        url: ("/PSAdmin/RFCalendar/DragEvent"), 
        data: ({ 
         type: event.className, 
         delta: dayDelta, 
         newDate: event.start, 
         newTitle: event.title 
        }), 
        type: "POST", 
        success: function (data) { 
         $('#calendar').empty(); 
         loadCalendar(); 
        }, 
        error: function (xhr, status, error) { 
         alert("fail"); 
        } 
       }); 
} 

我的問題是,當我嘗試發送包含到事件對象的任何變量,這是行不通的。例如只發送dayDelta到服務器端工作,但沒有一個event.something。

如果有人偶然發現過這個問題,或者您有任何想法可能會導致問題,請讓我知道。

+0

您的代碼應該很好地工作。 '請在控制檯檢查你的event.something是否有它們的值。「你可以將event.something緩存到變量中,然後使用這些變量作爲數據對象傳遞。 – thecodeparadox

+0

我提醒每個值,他們都很好,但是當他們到達我的服務器時,他們是空的。 – vegas2033

+0

您是否使用瀏覽器的devtools或使用Fiddler或類似軟件檢查網絡請求? –

回答

1

所以很遺憾,我找不到爲什麼ajax查詢不能正常工作,我不得不做我最初不想做的事情。

if (event.className == "holiday") { 
        var className = "holiday"; 
       } 

       //build date 
       var date = event.start.getMonth()+1 + "/" + event.start.getDate() + "/" + event.start.getFullYear(); 
       alert(date); 

       $.ajax({ 
        url: ("/PSAdmin/RFCalendar/DragEvent/"), 
        data: ({ 
         className: className, 
         delta: dayDelta, 
         newDate: date, 
         newTitle: event.title 
        }), 
        type: "POST", 
        success: function (data) { 
         $('#calendar').empty(); 
         loadCalendar(); 
        }, 
        error: function (xhr, status, error) { 
         alert("fail"); 
        } 
       }); 

這是醜陋的和耗時的,但至少它的工作原理。我還有其他優先工作要做,但如果你對這個問題有任何線索,請告訴我。

感謝, 格雷格

1

晚的答案,但我哈得什麼也沒有一個類似的問題越來越發送到服務器。嘗試了一切,緩存以及使用jQuery來擴展和複製對象。

對我來說,工作是看標題,請求。他們似乎總是有數據。

我結束了這個代碼serverside。不是我想要的,但它可能有助於有人試圖解決同樣的問題!

C#

[HttpGet] 
    public void UpdateOrderData(object orderObj) 
    { 
     var obj = new 
     { 
      start = System.Web.HttpUtility.UrlDecode(HttpContext.Current.Request.QueryString["orderObj[start]"]), 
      end = System.Web.HttpUtility.UrlDecode(HttpContext.Current.Request.QueryString["orderObj[end]"]), 
      date = System.Web.HttpUtility.UrlDecode(HttpContext.Current.Request.QueryString["orderObj[date]"]), 
      resourceId = System.Web.HttpUtility.UrlDecode(HttpContext.Current.Request.QueryString["orderObj[resourceId]"]), 
      orderId = System.Web.HttpUtility.UrlDecode(HttpContext.Current.Request.QueryString["orderObj[orderId]"]), 
     }; 

     calendarUnitOfWork.CustomDataRepository.UpdateOrderData(obj); 
    } 

的Javascript

myModel.eventDrop = function(event, delta, revertFunc, jsEvent, ui, view) 
{ 
    calUOW.orderrepository.updateOrderData({ 
      start: event.start.format(), 
      end: event.end.format(), 
      date: event.start.format("YYYY-MM-DD"), 
      resourceId: event.resourceId, 
      orderId: event.orderId 
     }); 
    }