日期控件

feirulin 2003-08-19 12:31:41
请问大家,哪有比较好用一点的日期控件啊,当然不是.net自带的那个
...全文
659 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
aqqwbjgvkgsmq 2003-08-19
  • 打赏
  • 举报
回复
在本论坛中好像有人发过一个这样的控件,你可以去找一找。会有的。要不问问楼主吧。
asp_boy 2003-08-19
  • 打赏
  • 举报
回复
自己写一个好,用JavaScript来写,网上好多Javascript的例子,.net自带的那个,不好用。而且效率好低。
「已注销」 2003-08-19
  • 打赏
  • 举报
回复
ASP.NET日期控件荟萃,请见http://www.sorke.com/downcontrol.aspx
控件类型:日期控件,共5个
gqxm 2003-08-19
  • 打赏
  • 举报
回复
一个js日历:
<SCRIPT language="JavaScript">

// 一个简单的测试是否IE浏览器的表达式
isIE = (document.all ? true : false);

// 得到IE中各元素真正的位移量,即使这个元素在一个表格中
function getIEPosX(elt) { return getIEPos(elt,"Left"); }
function getIEPosY(elt) { return getIEPos(elt,"Top"); }

function getIEPos(elt,which)
{
iPos = 0;

while (elt!=null)
{
iPos += elt["offset" + which];
elt = elt.offsetParent;
}

return iPos;
}

function getXBrowserRef(eltname)
{
return (isIE ? document.all[eltname].style : document.layers[eltname]);
}

function hideElement(eltname)
{
getXBrowserRef(eltname).visibility = 'hidden';
}

// 按不同的浏览器进行处理元件的位置
function moveBy(elt,deltaX,deltaY)
{
if (isIE)
{
elt.left = elt.pixelLeft + deltaX;
elt.top = elt.pixelTop + deltaY;
}
else
{
elt.left += deltaX;
elt.top += deltaY;
}
}

function toggleVisible(eltname, pos)
{
elt = getXBrowserRef(eltname);
if (elt.visibility == 'visible' || elt.visibility == 'show')
{
elt.visibility = 'hidden';
}
else
{
fixPosition(eltname, pos);
elt.visibility = 'visible';
}
}

function setPosition(elt,positionername,isPlacedUnder)
{
positioner = null;

if (isIE)
{
positioner = document.all[positionername];
elt.left = getIEPosX(positioner);
elt.top = getIEPosY(positioner);
}
else
{
positioner = document.images[positionername];
elt.left = positioner.x;
elt.top = positioner.y;
}

if (isPlacedUnder)
{
moveBy(elt,0,positioner.height);
}
}



// 初始月份及各月份天数数组
var months = new Array("一 月", "二 月", "三 月", "四 月", "五 月", "六 月", "七 月", "八 月", "九 月", "十 月", "十一月", "十二月");
var daysInMonth = new Array(31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);
var displayMonth = new Date().getMonth();
var displayYear = new Date().getFullYear();
var displayDivName;
var displayElement;

//测试选择的年份是否是润年?
function getDays(month, year)
{
if (1 == month)
return ((0 == year % 4) && (0 != (year % 100))) || (0 == year % 400) ? 29 : 28;
else
return daysInMonth[month];
}


// 得到今天的日期
function getToday()
{
this.now = new Date();
this.year = this.now.getFullYear();
this.month = this.now.getMonth();
this.day = this.now.getDate();
}

// 显示今天这个月份的日历
function newCalendar(eltName,attachedElement)
{
if (attachedElement)
{
if (displayDivName && displayDivName != eltName) hideElement(displayDivName);
displayElement = attachedElement;
}

displayDivName = eltName;
today = new getToday();
var parseYear = parseInt(displayYear + '');
var newCal = new Date(parseYear,displayMonth,1);
var day = -1;
var startDayOfWeek = newCal.getDay();

if( (today.year == newCal.getFullYear()) && (today.month == newCal.getMonth()) )
{
day = today.day;
}

var intDaysInMonth = getDays(newCal.getMonth(), newCal.getFullYear());
var daysGrid = makeDaysGrid(startDayOfWeek,day,intDaysInMonth,newCal,eltName);

if( isIE )
{
var elt = document.all[eltName];
elt.innerHTML = daysGrid;
}
else
{
var elt = document.layers[eltName].document;
elt.open();
elt.write(daysGrid);
elt.close();
}
}

function incMonth(delta,eltName)
{
displayMonth += delta;
if (displayMonth >= 12)
{
displayMonth = 0;
incYear(1,eltName);
}
else if ( displayMonth <= -1 )
{
displayMonth = 11;
incYear(-1,eltName);
}
else
{
newCalendar(eltName);
}
}

function incYear(delta,eltName)
{
displayYear = parseInt(displayYear + '') + delta;
newCalendar(eltName);
}

function makeDaysGrid( startDay,day,intDaysInMonth,newCal,eltName )
{
var daysGrid;
var month = newCal.getMonth();
var year = newCal.getFullYear();
var isThisYear = (year == new Date().getFullYear());
var isThisMonth = (day > -1);

daysGrid = '<table border=1 cellspacing=0 cellpadding=2><tr><td bgcolor=#ffffff nowrap>';
daysGrid += '<font face="courier new, courier" size=2>';
daysGrid += '<a href="javascript:hideElement(\'' + eltName + '\')">x</a>';
daysGrid += '  ';
daysGrid += '<a href="javascript:incMonth(-1,\'' + eltName + '\')">« </a>';

daysGrid += '<b>';
if (isThisMonth) { daysGrid += '<font color=red>' + months[month] + '</font>'; }
else { daysGrid += months[month]; }
daysGrid += '</b>';

daysGrid += '<a href="javascript:incMonth(1,\'' + eltName + '\')"> »</a>';
daysGrid += '   ';
daysGrid += '<a href="javascript:incYear(-1,\'' + eltName + '\')">« </a>';

daysGrid += '<b>';
if (isThisYear) { daysGrid += '<font color=red>' + year + '</font>'; }
else { daysGrid += ''+year; }
daysGrid += '</b>';

daysGrid += '<a href="javascript:incYear(1,\'' + eltName + '\')"> »</a><br/>';
daysGrid += ' Su Mo Tu We Th Fr Sa <br/> ';

var dayOfMonthOfFirstSunday = (7 - startDay + 1);

for (var intWeek = 0; intWeek < 6; intWeek++)
{
var dayOfMonth;
for (var intDay = 0; intDay < 7; intDay++)
{
dayOfMonth = (intWeek * 7) + intDay + dayOfMonthOfFirstSunday - 7;
if (dayOfMonth <= 0)
{
daysGrid += "   ";
}
else if( dayOfMonth <= intDaysInMonth )
{
var color = "blue";
if (day > 0 && day == dayOfMonth) color="red";

daysGrid += '<a href="javascript:setDay(';
daysGrid += dayOfMonth + ',\'' + eltName + '\')" '
daysGrid += 'style="color:' + color + '">';
var dayString = dayOfMonth + "</a> ";
if (dayString.length == 6) dayString = '0' + dayString;
daysGrid += dayString;
}
}

if (dayOfMonth < intDaysInMonth) daysGrid += "<br/> ";
}

return daysGrid + "</td></tr></table>";
}

function setDay( day,eltName )
{
//displayElement.value = (displayMonth + 1) + "/" + day + "/" + displayYear;
displayElement.value = displayYear + "-" + (displayMonth + 1) + "-" + day;
hideElement(eltName);
}


function fixPosition( eltname, pos )
{
elt = getXBrowserRef(eltname);
positionerName = pos;
// hint: try setting isPlacedUnder to false
isPlacedUnder = false;
if( isPlacedUnder )
{
setPosition(elt,positionerName,true);
}
else
{
setPosition(elt,positionerName)
}
}

function toggleDatePicker(eltName,formElt, pos)
{
var x = formElt.indexOf('.');
var formName = formElt.substring(0,x);
var formEltName = formElt.substring(x+1);

if( formName.length > 0 )
newCalendar(eltName,document.forms[formName].elements[formEltName]);
else
newCalendar(eltName,document.all[formEltName]);

toggleVisible(eltName, pos);
}
</SCRIPT>


在.net中调用:
Protected WithEvents TextBox1 As System.Web.UI.WebControls.TextBox
Protected WithEvents ImageButton1 As System.Web.UI.WebControls.ImageButton

ImageButton1.Attributes.Add("onclick", "toggleDatePicker('calendar1', 'TextBox', 'ImageButton1');return false;")
ppp80 2003-08-19
  • 打赏
  • 举报
回复
同意asp_boy(asp_boy) ,用JavaScript一个

62,041

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧