[英]Jquery Full Calendar- Month name to be passed as a parameter to database when prev and next is clicked
球隊,
我是jquery和C#的新手。 我正在嘗試將jquery Full calendar插件與C#中的代碼集成以顯示公司資源占用的葉子。數據庫中有10,000多個記錄,我想按會計年度和會計月份進行篩選。當我單擊上一個和下一個按鈕時,將兩個參數傳遞給C#數據庫代碼(年和月)。
我可以在日歷上顯示數據庫的前500行(我想我不能顯示更多,這似乎是一個限制)
下面是代碼
js代碼
<script type="text/javascript">
$(document).ready(function () {
$.ajax({
type: "POST",
contentType: "application/json",
data: "{}",
url: "CalendarPage.aspx/GetEvents",
dataType: "json",
success: function (data) {
$('div[id*=fullcal]').fullCalendar({
header: {
left: 'prev,next today',
center: 'title',
right: 'month,agendaWeek,agendaDay'
},
editable: true,
events: $.map(data.d, function (item, i) {
//var eventsUrl = '/events/' + end.year() + '/' + parseInt(end.month());
var event = new Object();
event.id = item.EventID;
event.start = new Date(item.StartDate);
event.end = new Date(item.EndDate);
event.title = item.EventName;
event.url = item.Url;
event.ImageType = item.ImageType;
return event;
}), eventRender: function (event, eventElement) {
if (event.ImageType) {
if (eventElement.find('span.fc-event-time').length) {
eventElement.find('span.fc-event-time').before($(GetImage(event.ImageType)));
} else {
eventElement.find('span.fc-event-title').before($(GetImage(event.ImageType)));
}
}
},
loading: function (bool) {
if (bool) $('#loading').show();
else $('#loading').hide();
}
});
},
error: function (XMLHttpRequest, textStatus, errorThrown) {
debugger;
}
});
$('#loading').hide();
$('div[id*=fullcal]').show();
});
function GetImage(type) {
if (type == 0) {
return "<br/><img src = 'Styles/Images/attendance.png' style='width:24px;height:24px'/><br/>"
}
else if (type == 1) {
return "<br/><img src = 'Styles/Images/not_available.png' style='width:24px;height:24px'/><br/>"
}
else
return "<br/><img src = 'Styles/Images/not_available.png' style='width:24px;height:24px'/><br/>"
}
</script>
C#代碼
[WebMethod]
public static IList GetEvents()
{
Leave_Management_Leave_TakenTableAdapter LTTA = new Leave_Management_Leave_TakenTableAdapter();
DB.Leave_Management_Leave_TakenDataTable LTTbl = null;
**LTTbl = LTTA.GetForCalendar("I wish to put the parameters here");**
IList events = new List<Event>();
foreach( DataRow dr in LTTbl.Rows)
{
events.Add(new Event
{
EventName = dr["Fullname"] + " Leave",
// DateTime dt = ,
StartDate = DateTime.Parse(dr["leave_days"].ToString()).ToString("MM-dd-yyyy")
});
}
return events;
}
任何人都可以提出任何建議嗎?
Fullcalendar會在每次請求數據時傳遞2個GET參數,如果將(DateTime開始,DateTime結束)添加到GetEvents方法中,則可以過濾給定范圍的數據。
我早些時候以為控件面臨着在日歷上填充700-800個事件記錄的局限性。 在進一步調查中,我偶然發現了放在web.config中的一段代碼。 這基本上可以最大化jsonserialization字符串的長度。
<system.web.extensions>
<scripting>
<webServices>
<jsonSerialization maxJsonLength="50000000"/>
</webServices>
</scripting>
</system.web.extensions>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.