xgCalendar在ASP.NET中的使用
1.将wdCalendar文件夹考入项目中
2.在页面中添加引用,见3中head标签中定义
3.配置xgCalendar,两段代码放在一起就是完整的页面
body>
<div>
<div></div>
<div id="calhead" style="padding-left: 1px; padding-right: 1px;">
<div class="cHead">
<div class="ftitle">日历控件</div>
<div id="loadingpannel" class="ptogtitle loadicon" style="display: none;">加载数据中...</div>
<div id="errorpannel" class="ptogtitle loaderror" style="display: none;">很抱歉,无法加载数据,请稍后再试</div>
</div>
<div id="caltoolbar" class="ctoolbar">
<div id="faddbtn" class="fbutton">
<%--<div> *******************此处可以去掉注释
<span title='Click to Create New Event' class="addcal">新增
</span>
</div>--%>
</div>
<div class="btnseparator"></div>
<div id="showtodaybtn" class="fbutton">
<div>
<span title='Click to back to today ' class="showtoday">Today</span>
</div>
</div>
<div class="btnseparator"></div> <div id="showdaybtn" class="fbutton">
<div><span title='Day' class="showdayview">天</span></div>
</div>
<div id="showweekbtn" class="fbutton fcurrent">
<div><span title='Week' class="showweekview">周</span></div>
</div>
<div id="showmonthbtn" class="fbutton">
<div><span title='Month' class="showmonthview">月</span></div> </div>
<div class="btnseparator"></div>
<div id="showreflashbtn" class="fbutton">
<div><span title='Refresh view' class="showdayflash">刷新</span></div>
</div>
<div class="btnseparator"></div>
<div id="sfprevbtn" title="Prev" class="fbutton">
<span class="fprev"></span> </div>
<div id="sfnextbtn" title="Next" class="fbutton">
<span class="fnext"></span>
</div>
<div class="fshowdatep fbutton">
<div>
<input type="hidden" name="txtshow" id="hdtxtshow" />
<span id="txtdatetimeshow">Loading</span> </div>
</div> <div class="clear"></div>
</div>
</div>
<div style="padding: 1px;"> <div class="t1 chromeColor">
</div>
<div class="t2 chromeColor">
</div>
<div id="dvCalMain" class="calmain printborder">
<div id="gridcontainer" style="overflow-y: visible;">
</div>
</div>
<div class="t2 chromeColor">
</div>
<div class="t1 chromeColor">
</div>
</div> </div> </body><head id="Head1">
<title>日历控件</title> //**********************************引用
<meta http-equiv="Content-Type" content="text/html;charset=utf-8">
<link href="wdCalendar/css/dailog.css" rel="stylesheet" type="text/css" />
<link href="wdCalendar/css/calendar.css" rel="stylesheet" type="text/css" />
<link href="wdCalendar/css/dp.css" rel="stylesheet" type="text/css" />
<link href="wdCalendar/css/alert.css" rel="stylesheet" type="text/css" />
<link href="wdCalendar/css/main.css" rel="stylesheet" type="text/css" />
<script src="wdCalendar/src/jquery.js" type="text/javascript"></script>
<script src="wdCalendar/src/Plugins/Common.js" type="text/javascript"></script>
<script src="wdCalendar/src/Plugins/datepicker_lang_US.js" type="text/javascript"></script>
<script src="wdCalendar/src/Plugins/jquery.datepicker.js" type="text/javascript"></script>
<script src="wdCalendar/src/Plugins/jquery.alert.js" type="text/javascript"></script>
<script src="wdCalendar/src/Plugins/jquery.ifrmdailog.js" defer="defer" type="text/javascript"></script>
<script src="wdCalendar/src/Plugins/wdCalendar_lang_US.js" type="text/javascript"></script>
<script src="wdCalendar/src/Plugins/jquery.calendar.js" type="text/javascript"></script> <script type="text/javascript">
$(document).ready(function () {
var view = "week"; var DATA_FEED_URL = "datafeed.ashx"; //*****************配置用于处理请求的处理程序 var op = {
view: view,
theme: 3,
showday: new Date(),
EditCmdhandler: Edit,
DeleteCmdhandler: Delete,
ViewCmdhandler: View,
onWeekOrMonthToDay:wtd,
DIYquickAspx: "edit.aspx", //自定义快速添加、新建和更新时弹出的窗口,使用quickAddUrl时该属性无效。注:bug quickAdd //Hand设置无效,所以找的替代方法。需要在jQuery.Calendar.js中加段代码
onBeforeRequestData: cal_beforerequest,
onAfterRequestData: cal_afterrequest,
onRequestDataError: cal_onerror,
autoload: true,
enableDrag: false, //不想让磁贴被随意拖动,所以设置false
extParam: [],
url: DATA_FEED_URL + "?method=list",
//quickAddUrl: DATA_FEED_URL + "?method=add",//设置此字段将使用默认快速添加窗口,能掩盖DIYquickAspx部分功能,即自定/ //义快速添加窗口的使用
quickUpdateUrl: DATA_FEED_URL + "?method=update",
quickDeleteUrl: DATA_FEED_URL + "?method=remove"
};
//**********************************调用op设置的参数的方法,比如:$("#gridcontainer").BcalGetOp().DIYquickAspx
var $dv = $("#calhead");
var _MH = document.documentElement.clientHeight;
var dvH = $dv.height() + 2;
op.height = _MH - dvH;
op.eventItems = []; var p = $("#gridcontainer").bcalendar(op).BcalGetOp();
if (p && p.datestrshow) {
$("#txtdatetimeshow").text(p.datestrshow);
} $("#caltoolbar").noSelect(); $("#hdtxtshow").datepicker({
picker: "#txtdatetimeshow", showtarget: $("#txtdatetimeshow"),
onReturn: function (r) {
var p = $("#gridcontainer").gotoDate(r).BcalGetOp();
if (p && p.datestrshow) {
$("#txtdatetimeshow").text(p.datestrshow);
}
}
});
function cal_beforerequest(type) {
var t = "数据加载中...";
switch (type) {
case 1:
t = "数据加载中...";
break;
case 2:
case 3:
case 4:
t = "该请求处理...";
break;
}
$("#errorpannel").hide();
$("#loadingpannel").html(t).show();
}
function cal_afterrequest(type) {
switch (type) {
case 1:
$("#loadingpannel").hide();
break;
case 2:
case 3:
case 4:
$("#loadingpannel").html("Success!");
window.setTimeout(function () { $("#loadingpannel").hide(); }, 2000);
break;
} }
function cal_onerror(type, data) {
$("#errorpannel").show();
}
function Edit(data) {
var eurl = $("#gridcontainer").BcalGetOp().DIYquickAspx+"?id={0}&start={2}&end={3}&isallday={4}&title={1}";
if (data) {
var url = StrFormat(eurl, data);
OpenModelWindow(url, {
width: 600, height: 400, caption: "Manage The Calendar", onclose: function () {
$("#gridcontainer").reload();
}
});
}
} function View(data) {
var str = "";
$.each(data, function (i, item) {
str += "[" + i + "]: " + item + "\n";
});
document.write(str);
}
function Delete(data, callback) {
$.alerts.okButton = "确定";
$.alerts.cancelButton = "取消";
hiConfirm("是否删除该日历?", '确认', function (r) { r && callback(0); });
}
function wtd(p) {
if (p && p.datestrshow) {
$("#txtdatetimeshow").text(p.datestrshow);
}
$("#caltoolbar div.fcurrent").each(function () {
$(this).removeClass("fcurrent");
})
$("#showdaybtn").addClass("fcurrent");
}
//to show day view
$("#showdaybtn").click(function (e) {
//document.location.href="#day";
$("#caltoolbar div.fcurrent").each(function () {
$(this).removeClass("fcurrent");
})
$(this).addClass("fcurrent");
var p = $("#gridcontainer").swtichView("day").BcalGetOp();
if (p && p.datestrshow) {
$("#txtdatetimeshow").text(p.datestrshow);
}
});
//to show week view
$("#showweekbtn").click(function (e) {
//document.location.href="#week";
$("#caltoolbar div.fcurrent").each(function () {
$(this).removeClass("fcurrent");
})
$(this).addClass("fcurrent");
var p = $("#gridcontainer").swtichView("week").BcalGetOp();
if (p && p.datestrshow) {
$("#txtdatetimeshow").text(p.datestrshow);
} });
//to show month view
$("#showmonthbtn").click(function (e) {
//document.location.href="#month";
$("#caltoolbar div.fcurrent").each(function () {
$(this).removeClass("fcurrent");
})
$(this).addClass("fcurrent");
var p = $("#gridcontainer").swtichView("month").BcalGetOp();
if (p && p.datestrshow) {
$("#txtdatetimeshow").text(p.datestrshow);
}
}); //给刷新按钮添加单击事件
$("#showreflashbtn").click(function (e) {
$("#gridcontainer").reload();
}); //Add a new event 新增
$("#faddbtn").click(function (e) {
var url = $("#gridcontainer").BcalGetOp().DIYquickAspx;
OpenModelWindow(url, { width: 500, height: 400, caption: "Create New Calendar" });
});
//go to today
$("#showtodaybtn").click(function (e) {
var p = $("#gridcontainer").gotoDate().BcalGetOp();
if (p && p.datestrshow) {
$("#txtdatetimeshow").text(p.datestrshow);
}
});
//previous date range
$("#sfprevbtn").click(function (e) {
var p = $("#gridcontainer").previousRange().BcalGetOp();
if (p && p.datestrshow) {
$("#txtdatetimeshow").text(p.datestrshow);
} });
//next date range
$("#sfnextbtn").click(function (e) {
var p = $("#gridcontainer").nextRange().BcalGetOp();
if (p && p.datestrshow) {
$("#txtdatetimeshow").text(p.datestrshow);
}
});
});
</script>
</head>
4.jquery.calendar.js的修改:
在 $.fn.bcalendar = function(option) { var def = { 后添加属性定义: DIYquickAspx:"";同时在添加:
//快速添加响应事件
function quickadd(start, end, isallday, pos) {
if ((!option.quickAddHandler && option.quickAddUrl == "") || option.readonly) {
/*********************************自己添加************************************************/
var startTime = dateFormat.call(start, i18n.xgcalendar.dateformat.fulldayvalue + " HH:mm");
var endTime = dateFormat.call(end, i18n.xgcalendar.dateformat.fulldayvalue + " HH:mm"); //将选的时间传到edit.aspx //中
var url = option.DIYquickAspx+"?startTime=" + startTime + "&endTime=" + endTime;
OpenModelWindow(url, { width: 500, height: 400, caption: "Create New Calendar" }); /*********************************自己添加************************************************/
return;
}
在此处调用函数和获取属性是通过:option.quickAddHandler和option.quickAddHandler.call的形式进行的。
在jquery.calendar.js中获取传递信息的方法:
function dayshow(e, data) {
if (data == undefined) {
data = getdata($(this));
}
alert(data[0]);}
通过自定义的这个快速添加弹出自定义的添加窗口,同时所选择的时间被设置。而且可以添加额外的控件。具体见代码。
实测运行通过:VS2013+MySQL
xgCalendar在ASP.NET中的使用的更多相关文章
- ASP.NET中常用的优化性能的方法
1. 数据库访问性能优化 数据库的连接和关闭 访问数据库资源需要创建连接.打开连接和关闭连接几个操作.这些过程需要多次与数据库交换信息以通过身份验证,比较耗费服务器资源.ASP.NET中提供了连接池( ...
- asp.net中ashx生成验证码代码放在Linux(centos)主机上访问时无法显示问题
最近有个项目加入了验证码功能,就从自己博客以前的代码中找到直接使用,直接访问验证码页面报错如下: 源代码:asp.net中使用一般处理程序生成验证码 Application Exception Sys ...
- ASP.NET中Session的sessionState 4种mode模式
1. sessionState的4种mode模式 在ASP.NET中Session的sessionState的4中mode模式:Off.InProc.StateServer及SqlServer. 2. ...
- Asp.net中存储过程拖拽至dbml文件中,提示无法获得返回值
Asp.net中存储过程拖拽至dbml文件中,提示无法获得返回值,去属性表中设置这时候会提示你去属性表中更改返回类型. 其实存储过程返回的也是一张表,只不过有时候存储过程有点复杂或者写法不规范的话不能 ...
- ASP.NET中后台数据和前台控件的绑定
关于ASP.NET中后台数据库和前台的数据控件的绑定问题 最近一直在学习个知识点,自己创建了SQL Server数据库表,想在ASP.NET中连接数据库,并把数据库中的数据显示在前台,注意,这里的数据 ...
- asp.net中缓存的使用介绍一
asp.net中缓存的使用介绍一 介绍: 在我解释cache管理机制时,首先让我阐明下一个观念:IE下面的数据管理.每个人都会用不同的方法去解决如何在IE在管理数据.有的会提到用状态管理,有的提到的c ...
- ASP.NET中Ajax的用法
在ASP.NET中应用Ajax的格式如下: 前台代码(用JQuery库) $.ajax({ type: "POST", async: true, url: "../Aja ...
- Asp.Net中使用OpenRowSet操作Excel表,导入Sql Server(实例)
有两种接口可供选择:Microsoft.Jet.OLEDB.4.0(以下简称 Jet 引擎)和Microsoft.ACE.OLEDB.12.0(以下简称 ACE 引擎). Jet 引擎大家都很熟悉,可 ...
- Asp.net中static变量和viewstate的使用方法(谨慎)
在.Net平台下进行CS软件开发时,我们经常遇到以后还要用到某些变量上次修改后的值,为了简单起见,很多人都习惯用static来定义这些变量,我也是.这样非常方便,下一次调用某个函数时该变量仍然保存的是 ...
随机推荐
- get_class
<?phpclass foo { function foo() { // implements some logic } function name() { ...
- 【转】游戏buff设计参见
其实这类帖子并没有多少的设计理论,对于策划的提升和帮助也并不大,原因其实在于其适用性太窄,当我要设计XX象棋的时候,它就滚一边去了. 废话不多说切入正题: 游戏中的BUFF/DEBUFF我们见过很多, ...
- python perlin noise
python 利用 noise 生成纹理. # -*- coding: utf-8 -*- """ Created on Mon Apr 23 20:04:41 2018 ...
- Android shell command execute Demo
package com.android.utils; import java.io.File; import java.io.IOException; import java.io.InputStre ...
- 第三周作业3——Bug Report
作业要求来自:https://edu.cnblogs.com/campus/nenu/SWE2017FALL/homework/957 要求1: 准备工作:利用老师提供的git 命令,批量pull所有 ...
- Word所有字体按比例缩小
ctrl + [ 不然每次都要一部分一部分的修改啊
- 浏览器通过http协议通过nginx访问ftp服务器上的文件
1.修改nginx配置文件 2.修改nginx默认目录为ftp默认目录 3.修改成自定义路径后,并修改此目录第一行,修改为root或是nginx用户 4.重新加载 cd /usr/local/ngin ...
- WPF中Image显示本地图片(转)
private void SetSource(System.Windows.Controls.Image image, string fileName) { System.Drawing.Image ...
- kettle的资源库
在kettle中的转换或者作业等资源的存储的仓库称为资源库:分为文件资源库.数据库资源库. 一个转换或者作业可以属于某个资源库或者一个单独的文件形态存在. 一.数据库资源库 1.1在mysql中创建一 ...
- 开发vue全局插件的4种方式
定义全局插件的步骤 定义全局插件 pluginsUtil.js Vue.js 的插件应当有一个公开方法 install .这个方法的第一个参数是 Vue 构造器,第二个参数是一个可选的选项对象: ex ...