问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

C# Calendar控件问题

发布网友 发布时间:2022-04-22 10:08

我来回答

3个回答

热心网友 时间:2023-09-21 12:46

日期控件JS部分Calendar.js

/*------------------------------------------------------------------------
日期控件
function Cal_dropdown(edit,min,max)
弹出日历,可不给参数min和max,参数edit如无,则查找日期图片的第一个兄弟edit。

function Cal_datevalid(edit,min,max)
检查edit中值是否为大于等于min,小于等于max的有效日期格式字符串。
是则返回 true,否则返回false
可不给参数min和max(字符串格式)
参数edit必须有,如果edit无,则必须是:edit为edit和img的父亲(如span、div)的第一个元素

最新修改 文兵 2002-12-25 适用于IE 5.0以上浏览器
*/

var Cal_popup;
var Cal_edit;
var Cal_editdate = new Date();
var Cal_maxdate;
var Cal_mindate;

function Cal_clearTime(thedate)
{
thedate.setHours(0);
thedate.setMinutes(0);
thedate.setSeconds(0);
thedate.setMilliseconds(0);
}

var Cal_today = new Date();
Cal_clearTime(Cal_today);

function Cal_decDay(thedate,days)
{
if(days==0);
else if (!days) days = 1;

thedate.setTime(thedate - days*24*60*60*1000);
}

function Cal_incMonth(year,month)
{
if (month == 11) {
month = 0;
year++;
} else month++;
Cal_writeHTML(year,month);
}

function Cal_decMonth(year,month)
{
if (month == 0) {
month = 11;
year--;
} else month--;
Cal_writeHTML(year,month);
}

function Cal_decYear(year,month)
{
Cal_writeHTML(year-1,month);
}

function Cal_incYear(year,month)
{
Cal_writeHTML(year+1,month);
}

function Cal_writeHTML(theyear,themonth)
{
var html=
'<TABLE style=background-color:#FBE1C3; border-left: 1px solid #D6D6D6;border-top: 1px solid #D6D6D6;'+
'cellSpacing="0" cellPadding="5" border="0" width=100% bgcolor=#f1f1f1>'+
'<TR style="background-color:#FBE1C3;BORDER-RIGHT: #c9c9c9 1px solid; BORDER-TOP: #ffffff 1px solid; BORDER-LEFT: #ffffff 1px solid; COLOR: #545454; BORDER-BOTTOM: #c9c9c9 1px solid;"><TD style="cursor:hand;color:#B94F00;background-color:#FBE1C3" align="center" height=20 width=26 onmouseover="this.style.color=' +
"'#FF0000';" + '"' + ' onmouseout="this.style.color=' + "'#B94F00';" + '"' +
' onclick="Cal_decYear(' + theyear + ',' + themonth + ');" '+
'><年</TD>'+
'<TD style="cursor:hand;color:#B94F00;background-color:#FBE1C3" align="left" width=26 onmouseover="this.style.color=' +
"'#FF0000';" + '"' + ' onmouseout="this.style.color=' + "'#B94F00';" + '"' +
' onclick="Cal_decMonth(' + theyear + ',' + themonth + ');" '+
'><月</TD>'+
'<TD align="center" colspan="3" width=78 style="color:#B94F00;background-color:#FBE1C3" >';

html += theyear + '年' + (themonth + 1) + '月</TD>'+
'<TD style="cursor:hand;color:#B94F00;background-color:#FBE1C3" align="right" width=26 onmouseover="this.style.color=' +
"'#FF0000';" + '"' + ' onmouseout="this.style.color=' + "'#B94F00';" + '"' +
' onclick="Cal_incMonth(' + theyear + ',' + themonth + ');" '+
'>月></TD>'+
'<TD style="cursor:hand;color:#B94F00;background-color:#FBE1C3" align="right" width=26 onmouseover="this.style.color=' +
"'#FF0000';" + '"' + ' onmouseout="this.style.color=' + "'#B94F00';" + '"' +
' onclick="Cal_incYear(' + theyear + ',' + themonth + ');" '+
'>年></TD>';

html +=
'</TR></TABLE>'+
'<TABLE style="font-weight:bold;text-align:center; COLOR: #545454; BACKGROUND-COLOR: #f1f1f1" '+
'cellSpacing="0" cellPadding="0" width="100%">'+
'<TR><TD style="color:#545454;BORDER-RIGHT: #c9c9c9 1px solid; BORDER-TOP: #ffffff 1px solid; BORDER-LEFT: #ffffff 1px solid; COLOR: #545454; BORDER-BOTTOM: #c9c9c9 1px solid; BACKGROUND-COLOR: #e3e3e3" width=26>日</TD><TD width=26 style="color:#545454;BORDER-RIGHT: #c9c9c9 1px solid; BORDER-TOP: #ffffff 1px solid; BORDER-LEFT: #ffffff 1px solid; COLOR: #545454; BORDER-BOTTOM: #c9c9c9 1px solid; BACKGROUND-COLOR: #e3e3e3">一</TD><TD width=26 style="color:#545454;BORDER-RIGHT: #c9c9c9 1px solid; BORDER-TOP: #ffffff 1px solid; BORDER-LEFT: #ffffff 1px solid; COLOR: #545454; BORDER-BOTTOM: #c9c9c9 1px solid; BACKGROUND-COLOR: #e3e3e3">二</TD><TD width=26 style="color:#545454;BORDER-RIGHT: #c9c9c9 1px solid; BORDER-TOP: #ffffff 1px solid; BORDER-LEFT: #ffffff 1px solid; COLOR: #545454; BORDER-BOTTOM: #c9c9c9 1px solid; BACKGROUND-COLOR: #e3e3e3">三</TD><TD width=26 style="color:#545454;BORDER-RIGHT: #c9c9c9 1px solid; BORDER-TOP: #ffffff 1px solid; BORDER-LEFT: #ffffff 1px solid; COLOR: #545454; BORDER-BOTTOM: #c9c9c9 1px solid; BACKGROUND-COLOR: #e3e3e3">四</TD><TD width=26 style="color:#545454;BORDER-RIGHT: #c9c9c9 1px solid; BORDER-TOP: #ffffff 1px solid; BORDER-LEFT: #ffffff 1px solid; COLOR: #545454; BORDER-BOTTOM: #c9c9c9 1px solid; BACKGROUND-COLOR: #e3e3e3">五</TD><TD width=26 style="color:#545454b;BORDER-RIGHT: #c9c9c9 1px solid; BORDER-TOP: #ffffff 1px solid; BORDER-LEFT: #ffffff 1px solid; COLOR: #545454; BORDER-BOTTOM: #c9c9c9 1px solid; BACKGROUND-COLOR: #e3e3e3">六</TD>'+
'</TR></table>'+
'<TABLE style="FONT-SIZE: 9pt;text-align:center;cursor:hand;background-color: #f1f1f1" cellSpacing="0" '+
'cellPadding="0" width="100%">';

var day1 = new Date(theyear,themonth,1);
Cal_decDay(day1,day1.getDay()); // 日历开始日
for (var i=1;i<=6;i++) {
html += '<TR>';
for (var j=1;j<=7;j++) {
html += '<TD';
if (day1.getTime()==Cal_today.getTime())
html += ' style="color:#ff0000;BORDER-RIGHT: #c9c9c9 1px solid; BORDER-TOP: #ffffff 1px solid; BORDER-LEFT: #ffffff 1px solid; COLOR: #545454; BORDER-BOTTOM: #c9c9c9 1px solid; BACKGROUND-COLOR: #f1f1f1"';
else
if (day1.getTime()==Cal_editdate.getTime())
html += ' style="color:#545454;BORDER-RIGHT: #c9c9c9 1px solid; BORDER-TOP: #ffffff 1px solid; BORDER-LEFT: #ffffff 1px solid; COLOR: #545454; BORDER-BOTTOM: #c9c9c9 1px solid; BACKGROUND-COLOR: #f1f1f1"';
else
if (day1.getMonth() != themonth)
html += ' style="color:#545454;BORDER-RIGHT: #c9c9c9 1px solid; BORDER-TOP: #ffffff 1px solid; BORDER-LEFT: #ffffff 1px solid; COLOR: #545454; BORDER-BOTTOM: #c9c9c9 1px solid; BACKGROUND-COLOR: #f1f1f1"';
html += ' onmouseover="this.style.background=' +
"'#FBE1C3';" + '"'+
' onmouseout="this.style.background=' +
"'#f1f1f1';" + '"';
html += ' onclick="Cal_clickday('+day1.getTime() + ');"';
html +=' style="color:#545454;BORDER-RIGHT: #c9c9c9 1px solid; BORDER-TOP: #ffffff 1px solid; BORDER-LEFT: #ffffff 1px solid; COLOR: #545454; BORDER-BOTTOM: #c9c9c9 1px solid; BACKGROUND-COLOR: #f1f1f1">' + day1.getDate() + '</TD>';
Cal_decDay(day1,-1);
}
html += '</TR>';
if (day1.getMonth() != themonth) break;
}

html +=
'</TABLE>'+
'<div style="border-top:#f1f1f1 1px solid;text-align:right;padding:2px;color:#545454">今天是 '+
'<span style="color:#ff0000;cursor:hand;text-decoration:underline" onclick="javascript:Cal_clickday('+
Cal_today.getTime() + ');">'+
Cal_today.getFullYear() + '-' + (Cal_today.getMonth()+1) + '-' + Cal_today.getDate() +
'</span></div>';

if (!Cal_popup) {
Cal_popup = document.createElement(
'<div id="Cal_div1" style="z-index:20000;position: absolute;width:231px;FONT-SIZE:9pt;' +
'BORDER-RIGHT: #c9c9c9 1px solid; BORDER-TOP: #ffffff 1px solid; BORDER-LEFT: #ffffff 1px solid; COLOR: #545454; BORDER-BOTTOM: #c9c9c9 1px solid; BACKGROUND-COLOR: #f1f1f1" '+
'hidefocus=true onclick="Cal_capture_click()" ondblclick="this.click()" '+
'onmouseover="Cal_capture_mover()" onmouseout="Cal_capture_mout()">');
document.body.insertAdjacentElement('beforeEnd',Cal_popup);
}
Cal_popup.innerHTML = html;
}

function Cal_hide()
{
Cal_popup.releaseCapture();
Cal_popup.style.display="none";
}

function Cal_capture_click()
{
var obj=event.srcElement;
if (Cal_popup.contains(obj)) {
if ( (obj!=Cal_popup) && obj.onclick) obj.onclick();
} else {
Cal_hide();
}
}

function Cal_capture_mover()
{
var obj=event.srcElement;
if (Cal_popup.contains(obj)) {
if ( (obj!=Cal_popup) && obj.onmouseover) obj.onmouseover();
}
}

function Cal_capture_mout()
{
var obj=event.srcElement;
if (Cal_popup.contains(obj)) {
if ( (obj!=Cal_popup) && obj.onmouseout) obj.onmouseout();
}
}

// 字符串转换为日期
function Cal_strtodate(str)
{
var date = Date.parse(str);
if (isNaN(date)) {
date = Date.parse(str.replace(/-/g,"/")); // 识别日期格式:YYYY-MM-DD
if (isNaN(date)) date = 0;
}
return(date);
}

//返回日期间相差的天数
function Cal_DateDiff(Date1, Date2)
{
return (Date2-Date1)/(24*60*60*1000);
}

//返回日期间相差的月数(最大误差小于一个月)
function Cal_MonthDiff(DateA, DateB)
{
Date1=new Date();
Date2=new Date();
Date1.setTime(DateA);
Date2.setTime(DateB);
months = (Date2.getFullYear() - Date1.getFullYear()) * 12;
addmonths = Date2.getMonth() - Date1.getMonth();
months = months + addmonths;
if(Date2.getDate() < Date1.getDate())
months--;
return months;
}

// 弹出日历,可不给参数min和max,参数edit必须有
function Cal_dropdown(edit,min,max) {
//alert(edit);
//var DateIMG = window.event.srcElement;
//alert("aa");
if (!edit) {
edit = DateIMG.parentElement.children(0);
if ((!edit.type) || (edit.type.toLowerCase() != "text")) return;
}
if(edit.readOnly) return;
Cal_edit = edit;
var date = Cal_strtodate(edit.value);
if (date == 0) date = Cal_today.getTime();
if (max) Cal_maxdate = Cal_strtodate(max);
else Cal_maxdate=0;
if (min) Cal_mindate = Cal_strtodate(min);
//else Cal_mindate = 0; // modified by huhao, 2003/4/30: 大部分调用都没有给min和max参数。而Date(0)是1970年1月1日。max = 0时认为是无*,不用改。
else Cal_mindate = new Date(1900, 1, 1);
Cal_editdate.setTime(date);
Cal_writeHTML(Cal_editdate.getFullYear(),Cal_editdate.getMonth());
/*
// 定位
var pos =
event.clientX - event.offsetX - DateIMG.offsetLeft
+ edit.offsetLeft - document.body.clientLeft + document.body.scrollLeft;
var max =
document.body.scrollLeft + document.body.getBoundingClientRect().right
- Cal_popup.style.pixelWidth;
// 如果下拉框宽度超出则往左移
if (pos > max) Cal_popup.style.left = max;
else Cal_popup.style.left = pos;

pos =
event.clientY - event.offsetY - DateIMG.offsetTop
+ edit.offsetTop + edit.offsetHeight - document.body.clientTop + document.body.scrollTop;
// 如果下拉框高度超出则往上弹出
if (pos > document.body.scrollTop + document.body.getBoundingClientRect().bottom - Cal_popup.clientHeight)
pos -= document.body.clientTop + edit.offsetHeight + Cal_popup.clientHeight;
Cal_popup.style.top = pos;
*/
Cal_popup.style.display="";

// 如果下拉框弹出后看不见(超出底部),则自动滚页
// if (Cal_popup.offsetTop + Cal_popup.offsetHeight + document.body.clientTop>=
// document.body.offsetHeight + document.body.scrollTop)
// document.body.doScroll("scrollbarPageDown");

Cal_popup.setCapture();
}

// 点击日期
function Cal_clickday(day,edit)
{
if (Cal_maxdate != 0) day = Math.min(day,Cal_maxdate);
day = Math.max(day,Cal_mindate);
Cal_editdate.setTime(day);
Cal_edit.value = Cal_editdate.getFullYear() + "-" + (Cal_editdate.getMonth()+1) + "-"
+ Cal_editdate.getDate();
//Cal_hide();
//Cal_edit.focus();

commit(); // 调用主窗口的事件
}

function Cal_datevalid(edit,min,max)
{
// 检查edit中值是否为大于等于min,小于等于max的有效日期格式字符串。

var date = Cal_strtodate(edit.value);
if (date == 0) return false;
if (max) {
var max = Cal_strtodate(max);
if ((max!=0)&&(date>max)) return false;
}
if (min) {
var min = Cal_strtodate(min);
if ((min!=0)&&(date<min)) return false;
}
date = new Date(date);
edit.value = date.getFullYear() + "-" + (date.getMonth()+1) +
"-" + date.getDate();
return true;
}

日期控件(aspx部分):calendar.aspx

<%@ page contentType="text/html; charset=UTF-8" %>//或使用GBK

<html>
<head>
<title>日历</title>
<SCRIPT language=javascript src="/DNPortal/js/Calendar.js"></SCRIPT>//使用时修改Calendar.js路径
</head>
<%
String name = request.getParameter("name"); // 日期输入框name
String value = request.getParameter("value"); // 日期输入框value
%>

<body bgcolor="#ffffff" onunload="commit()">
<input type="hidden" name="<%=name%>" value="<%=value%>"/>
<script language="javascript">
Cal_dropdown(<%=name%>);
function commit() {
window.returnValue = document.all.<%=name%>.value;
window.close();
}
</script>
</body>
</html>

图片:

编写代码部分:

out.println("<tr><td align='right' style='font-size:12px;'width='50'>时间:</td><td><input type='text' class='text' id='filedname' name='filedname' value='" +fieldvalue + "'>");
out.println("<IMG style='CURSOR: hand' onclick=" + "\"document.all.filedname.value = (window.showModalDialog('/DNPortal/file/report/calendar.aspx?name=filedname&value=" +value1 + "', '', 'dialogHeight: 232px; dialogWidth: 237px;'))\" src='/DNPortal/images/calendar.gif' width='16' height='18'> </td></tr>");
说明:filedname为输入日期文本框控件名称.value为原始日期文本框中的值.

使用时请修改相应的calendar.aspx文件路径及图片存放路径.

热心网友 时间:2023-09-21 12:47

你要的是不是一个日期控件啊?是的话,加我,我给你。

热心网友 时间:2023-09-21 12:47

VS里的日历控件太难用,你用JS的吧.

我这有几个(简单实用),完全可以实现你上述功能,如果你要,可以给你发过去.

HI我.
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
苹果手机微信怎么换漂亮字体(苹果手机微信怎么换行输入) 有什么好用的app转换字体 手写转文字的软件 erp可以看评论地址吗 淘宝评论url是什么意思? 揭秘:码牌支付风控升级,背后真相揭秘 电脑电视直播软件哪个好用什么软件好电脑看电视直播 潼南子同街学区是哪些 三极管BU406价格和参数? 火锅料放在冰柜忘了插电一个星期给会坏了吗 火锅的设备有哪些 安卓手机如何把音乐放在手机内置存储中 谁有英文的,日期格式为DD-MM-YYYY的js日历控件 怎样让jQueryUI 的日历控件显示中文日历 内部存储找不到了有什么办法挂载么 C#WINFORM 自动的日历控件怎么切换中英文? 求助,内置存储卡无法挂载 ASP.NET 怎么把日期改成英文格式的输出来 WORD 日历控件的英文名称 怎么把手机自带内存以U盘的方式挂载到电脑上 医用盐水放入37度恒温箱内,盐水的有效期? vf中的日历控件的英文是什么啊 保温箱温度 梅艳芳是因为什么原因去世的? 电热恒温箱怎么用啊? 保温箱的特点有哪些 冷链保温箱在运输中需要实时监测吗?怎么实现? 恒温箱温度控制器上的kw-1型温度传感器那里人卖的 求高手翻译, 保温箱的特点有哪些 各位大师好.我有个女儿想起个名字.我姓刘.老婆姓苗.想起个双字的.谢谢各位了 如何挂载安卓的手机内存 如何将Calendar日历控件中文星期变成英文 怎样将手机的外置储存卡设置为内置储存卡? asp.net中calendar控件 如何显示英文年月 C++如何制作日历控件 PPT怎样添加日历控件 手机刷机内置储存卡无法挂载怎么办?? 怎么把手机上的文件移到“手机内置储存”那里去?? 谁知道rainmeter桌面上的皮肤怎么把英文变成中文!!!!求大神指教 怎么把手机自带内存以U盘的方式挂载到电脑上?? EXCEL2003的万年历控件在哪里 华为y300手机内部存储无法挂载 华为怎么设置抖音时间罗盘,拜托了,谢谢各位大神 急,急!!!电子表格问题 win10弹出usb大容量存储 WPS企业版有VBA,怎么没有日历控件12.0啊!而且网上也找不到!找到的又是英文的! 手机怎么挂载ntfcU盘 跪求数字时钟word clock win10版 官方安装包软件百度云资源 【求助】excel无法注册日历控件 带姓氏的时间轮盘怎么弄