找回密码
 立即注册

QQ登录

只需一步,快速开始

iceman

社区贡献组

270

主题

1万

帖子

1万

积分

社区贡献组

积分
19311

活字格认证微信认证勋章元老葡萄

iceman
社区贡献组   /  发表于:2011-12-20 18:56  /   查看:9811  /  回复:9
我们可以使用 DateCalendarCellType 实现点击击单元格弹出日期控件的效果。

关于使用 DateCalendarCellType 的准备工作,请参考:
http://gcdn.grapecity.com/showtopic-2992.html

重要属性介绍
a.        DateFormat 获取或设置日期显示格式
b.        FirstDayOfWeek 获取或设置每周第一天。
c.        MaskedEditValidator:获取或设置验证信息。
d.        OnClientDateSelectionChanged:获取或设置客户端日历控件选择日期变化时的事件信息。
e.        OnClientHidden:获取或设置客户端日历控件隐藏后的事件信息。
f.        OnClientHiding:获取或设置客户端日历控件隐藏过程事件信息。
g.        OnClientShown:获取或设置客户端日历控件显示后的事件信息。
h.        OnClientShowing:获取或设置客户端日历控件显示过程中的事件信息。
i.        PopupPosition:获取或设置客户端单元格相对于单元格的显示位置。

下面通过实例来展示如何使用 DateCalendarCellType实现日历功能,并且演示如何调用客户端事件,在客户端选择日期变化时,如何在后台拿到变化日期。

1.创建 DateCalendarCellType并设置相关属性。
   a.后台代码,可以在 UpdateCommand 事件中查看日期变化:
  1. protected void Page_Load(object sender, EventArgs e)
  2.         {
  3.             FarPoint.Web.Spread.Extender.DateCalendarCellType dc = new FarPoint.Web.Spread.Extender.DateCalendarCellType();
  4.             dc.Animated = true;
  5.             dc.DateFormat = "MM/dd/yyyy";
  6.             dc.EnableOnClient = true;
  7.             dc.ShowEditor = true;
  8.             dc.OnClientDateSelectionChanged = "datechange";
  9.             FpSpread1.ActiveSheetView.Cells[0, 0].CellType = dc;
  10.         }

  11.         protected void FpSpread1_UpdateCommand(object sender, FarPoint.Web.Spread.SpreadCommandEventArgs e)
  12.         {

  13.         }
复制代码
b.前台代码,作用为把 动作 Post 到后台 UpdateCommand 事件中。
  1. <script type="text/javascript">
  2.         function datechange() {  
  3.           FpSpread1.UpdatePostbackData();
  4.             FpSpread1.CallBack("Update");
  5.         }
  6. </script>
复制代码
2.效果图

png

png

3.Demo下载
   开 发 环 境:VS2010 + Srpead for ASP.NET V5.0.3524.2008
DateCalendarCellType.zip (2.67 MB, 下载次数: 1149)

9 个回复

倒序浏览
holly.huang
初级会员   /  发表于:2016-7-27 11:10:44
沙发
chrome下,无法弹出日历…………
回复 使用道具 举报
dexteryao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2016-7-27 15:07:08
板凳
我这边测试没有问题,那个Demo比较老了,需要将demo中的spread dll和授权文件替换成最新的,其他的没有变化可以运行。
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2016-7-27 15:18:19
地板
chrome 什么版本?同样情况下IE能否弹出来?
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2016-7-27 15:18:21
5#
chrome 什么版本?同样情况下IE能否弹出来?
回复 使用道具 举报
dexteryao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2016-7-27 17:37:44
6#
iceman 发表于 2016-7-27 15:18
chrome 什么版本?同样情况下IE能否弹出来?

回复 使用道具 举报
wangyiwangyi
中级会员   /  发表于:2016-10-14 09:45:31
7#
今天测试
dt.ShowEditor = false;的时候选择的日期值不能赋到单元格,单元格数据没变化,
dt.ShowEditor = true;的时候选择的日期值正常赋值,但是dt.ShowEditor = true。页面显示不好看,有好的解决方法吗?
回复 使用道具 举报
wangyiwangyi
中级会员   /  发表于:2016-10-14 09:45:49
8#
iceman 发表于 2016-7-27 15:18
chrome 什么版本?同样情况下IE能否弹出来?

今天测试
dt.ShowEditor = false;的时候选择的日期值不能赋到单元格,单元格数据没变化,
dt.ShowEditor = true;的时候选择的日期值正常赋值,但是dt.ShowEditor = true。页面显示不好看,有好的解决方法吗?
回复 使用道具 举报
wangyiwangyi
中级会员   /  发表于:2016-10-14 09:48:14
9#
blob882715453.png ,输入框很明显,页面样式不好看dt.ShowEditor = true
回复 使用道具 举报
dexteryao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2016-10-14 15:58:33
10#
这个是默认的了,没有办法修改
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部