梅花雨网页日历控件是一个不错的日历控件,在网页上使用很方便,不过在用vs2005开发时碰到了一些问题:
1.出现未结束的字符串常量
这个问题一般是编码引起的,vs2005中默认的网页是utf-8编码的,而这个日历是gb2312的编码,所以出错了,有2个解决办法:
一个是在应用js文件的时候指定编码为gb2312:<script language="javascript" type="text/javascript" src="setday.js" charset="gb2312"></script>
另一个对这个js文件重新编码为utf-8的格式即可。
2.点击以后不报错,但是没有任何的反映
这个原因基本上是js控件中的代码不标准引起的,也有2种解决办法:
一个是删除网页头部的代码:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
另一个是修改js文件,找到
document.write("<div id='meizzCalendarLayer' style='POSITION: absolute; z-index: 9999; width: 144; height: 210; display: none'>");
做如下修改:
document.write("<div id='meizzCalendarLayer' style='POSITION: absolute; z-index: 9999; width: 144px; height: 210px; display: none'>");
然后就大功告成了,呵呵。
梅花雨日历控件的使用
首先下载calendar.js后, 然后按以下步骤进行使用:
第一,去掉你所引用页面的: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"" href="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd
第二, 在web.config里的 <system.web> </system.web>里面增加<globalization requestEncoding="gb2312" responseEncoding="gb2312" />
第三, 引用JS文件, 在 <head>里加入<input id="txtIN" runat="server" type="text" onclick="calendar()" />
补充:我后来使用的时候发现虽然这一部分功能实现了,日历可以使用了。但是其他网页的布局有了变化,例如确定取消按钮自己改变了位置和字体。我猜想可能是第二步使用globalization的原因吧。所以试着改了改终于成功了。方法是不再使用第二步,而是在需要使用日历的当前页加入js语句,只控制当前页的解码方式。
<script language ="javascript" type ="text/javascript" src ="calendar.js" charset ="gb2312"></script>
上句中的charset就是用来设定解码方式的。
这样一来就不会影响到其他的网页了。