發(fā)文章
發(fā)文工具
撰寫
網(wǎng)文摘手
文檔
視頻
思維導(dǎo)圖
隨筆
相冊(cè)
原創(chuàng)同步助手
其他工具
圖片轉(zhuǎn)文字
文件清理
AI助手
留言交流
介紹
本實(shí)例介紹使用DayPilot Lite for ASP.NET MVC library 類來實(shí)現(xiàn)類google日歷效果。
在線實(shí)例
我們將使用80行代碼來實(shí)現(xiàn)ajax 添加備忘,拖放
首先準(zhǔn)備:
1. DayPilot.Web.Mvc 類庫
下載 DayPilot Lite for ASP.NET MVC 包
在 Scripts 文件夾中復(fù)制 DayPilot JavaScript 到你的項(xiàng)目(Scripts/DayPilot):
從bin目錄復(fù)制DayPilot.Web.Mvc.dll 到你的項(xiàng)目 (Bin).
添加 DayPilot.Web.Mvc.dll引用:
2. MVC 視圖(8行代碼)
建立一個(gè) ASP.NET MVC 視圖 (Views/Home/Index.cshtml):
@{ ViewBag.Title = "ASP.NET MVC Razor Event Calendar"; }
<h2>ASP.NET MVC Razor Event Calendar</h2>
添加 DayPilot JavaScript 類:
<script src="@Url.Content("~/Scripts/DayPilot/daypilot-all.min.js")" type="text/javascript"></script>
添加日歷初始化代碼
@Html.DayPilotCalendar("dpc", new DayPilotCalendarConfig
{
BackendUrl = Url.Content("~/Home/Backend"),
})
Note that the minimum required code is quite short. It only has to point to the backend MVC controller ("~/Home/Backend") that will supply the calendar event data using an AJAX call.
在配置中添加DayPilot.Web.Mvc 命名空間以支持Html.DayPilotCalendar:
<configuration>
<system.web.webPages.razor>
<pages pageBaseType="System.Web.Mvc.WebViewPage">
<namespaces>
...
<add namespace="DayPilot.Web.Mvc"/>
</namespaces>
</pages>
</system.web.webPages.razor></configuration>
完整代碼:
3. MVC 控制器(34 行代碼)
建立一個(gè) MVC 控制器(Controllers/HomeController.cs):
public class HomeController : Controller
public ActionResult Index()
return View();
}
為日歷添加一個(gè) handler 叫作/Home/Backend.
public ActionResult Backend()
return new Dpc().CallBack(this);
DayPilotCalendar:
class Dpc : DayPilotCalendar
protected override void OnInit(InitArgs e)
var db = new DataClasses1DataContext();
Events = from ev in db.events select ev;
DataIdField = "id";
DataTextField = "text";
DataStartField = "eventstart";
DataEndField = "eventend";
Update();
我們使用 linq to sql從一個(gè)sql數(shù)據(jù)庫取得數(shù)據(jù) (DataClasses1.dbml).
"events" 表結(jié)構(gòu)
所有動(dòng)作將引發(fā) Update()
這里是日歷所有的控制器代碼:(使用ajax)
Collapse | Copy Code
using System;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using DayPilot.Web.Mvc;
using DayPilot.Web.Mvc.Events.Calendar;
namespace DayPilotCalendarMvc3.Controllers
4. 添加AJAX拖放事件 (38行代碼)
為了支持拖放,我們需要添加以下代碼:
EventMoveHandling = DayPilot.Web.Mvc.Events.Calendar.EventMoveHandlingType.CallBack,
EventResizeHandling = DayPilot.Web.Mvc.Events.Calendar.EventResizeHandlingType.CallBack,
TimeRangeSelectedHandling = DayPilot.Web.Mvc.Events.Calendar.TimeRangeSelectedHandlingType.JavaScript,
TimeRangeSelectedJavaScript = "dpc.timeRangeSelectedCallBack(start,
end, null, { name: prompt('New Event Name:', 'New Event') });"
事件處理
using DayPilot.Web.Mvc.Enums;
DataClasses1DataContext db = new DataClasses1DataContext();
Update(CallBackUpdateType.Full);
protected override void OnEventResize(EventResizeArgs e)
var toBeResized = (from ev in db.Events where ev.id == Convert.ToInt32(e.Id) select ev).First();
toBeResized.eventstart = e.NewStart;
toBeResized.eventend = e.NewEnd;
db.SubmitChanges();
protected override void OnEventMove(EventMoveArgs e)
protected override void OnTimeRangeSelected(TimeRangeSelectedArgs e)
var toBeCreated = new Event {eventstart = e.Start,
eventend = e.End, text = (string) e.Data["name"]};
db.Events.InsertOnSubmit(toBeCreated);
protected override void OnFinish()
if (UpdateType == CallBackUpdateType.None)
return;
Events = from ev in db.Events select ev;
5. 星期視圖 (+1行)
切換到日歷視圖非常簡(jiǎn)單
ViewType = DayPilot.Web.Mvc.Enums.Calendar.ViewType.Week,
TimeRangeSelectedJavaScript =
"dpc.timeRangeSelectedCallBack(start, end, null, { name: prompt('New Event Name:', 'New Event') });"
月視圖
翻譯自外網(wǎng)。
來自: 昵稱10504424 > 《工作》
0條評(píng)論
發(fā)表
請(qǐng)遵守用戶 評(píng)論公約
MVC+jQuery
MVC+jQuery.Ajax異步實(shí)現(xiàn)增刪改查和分頁。這篇文章主要為大家詳細(xì)介紹了MVC結(jié)合jQuery.Ajax異步實(shí)現(xiàn)增刪改查和分頁的相關(guān)資料,感興趣的小伙伴們可以參考一下.33usingSystem;usingSystem.UI;UI.HtmlCon...
基于AJAX的動(dòng)態(tài)樹型結(jié)構(gòu)的設(shè)計(jì)與實(shí)現(xiàn)
數(shù)據(jù)庫中節(jié)點(diǎn)的定位也是準(zhǔn)確的,但是將節(jié)點(diǎn)信息從數(shù)據(jù)庫中讀到內(nèi)存中時(shí),如果無法通過內(nèi)存數(shù)組下標(biāo)定位節(jié)點(diǎn)信息,那么就必須遍歷一遍尋...
Asp.Net Ajax的兩種基本開發(fā)模式
Net Ajax的兩種基本開發(fā)模式。UpdatePanel是是大家熟悉的一種方式了,即是在頁面拖放一個(gè)UpdatePanel,將需要用Ajax方式進(jìn)行更新的控件...
關(guān)于JqGrid + MVC 提交表格數(shù)據(jù),提交多行數(shù)據(jù)
關(guān)于JqGrid + MVC 提交表格數(shù)據(jù),提交多行數(shù)據(jù)。將jqGrid表格數(shù)據(jù)提交到MVC后臺(tái)一次保存。if (rowData.length < 1) { alert("沒有數(shù)據(jù)!"); return; } for (var i = 0; i < rowDat...
ASP.NET MVC4 IN ACTION學(xué)習(xí)筆記
ASP.NET MVC4 IN ACTION學(xué)習(xí)筆記。8: <a data-ajax="true" data-ajax-method="GET" data-ajax-mode="repl...
移動(dòng)端開發(fā)者眼中的前端開發(fā)流程變遷與前后端分離
一種解決方案是前端開發(fā)者只寫 Demo,也就是提供靜態(tài)的 HTML 效果給后端開發(fā)者,由后端開發(fā)者去完成視圖層(比如 JSP)的開發(fā)。8 后端MV...
【PHP系列課程】入門到就業(yè)
不需要任何基礎(chǔ),10天的課程堅(jiān)持下來,就能完成你的第一個(gè)軟件。并且,學(xué)會(huì)PHP的基礎(chǔ)語法。使用PHP編寫第一個(gè)程序,搞清楚PHP文件放在哪、代碼怎么寫,就算入門。由你自己去思考如何編寫,寫完之后上傳...
寫自己的ASP.NET MVC框架(上)
在開始今天的博客之前,我想有必要說說我的框架的規(guī)模:如果說ASP.NET WebForm是個(gè)復(fù)雜框架,ASP.NET MVC是個(gè)輕量級(jí)框架的話,那么,我...
MVC面試問題與答案
如果你想學(xué)習(xí)MVC,從這兒開始 Learn MVC ( Model view controller) step by step 7 days ,或者是 step by step MVC (Model View Contr...
微信掃碼,在手機(jī)上查看選中內(nèi)容