怎样避免页面刷新,当选者calendar的时间时!

leskey 2004-07-02 07:05:10
在calendar中点击时间后,页面就会刷新,很不好,什么办法可以避免这个问题!

去掉runat=server,好像不可以。

或者尤其他好的控件可推荐否,就像DTimer之类的咚咚
...全文
401 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
luckyprg 2005-01-18
  • 打赏
  • 举报
回复
建议用梅花雨js日历控件。由于是js的,所以不会有刷新问题存在。非常好用。
morality 2005-01-18
  • 打赏
  • 举报
回复
还是用梅花雨的日历控件吧,用 javascript 写的,很好用!

其下载地址为:

http://www.dev-club.com/club/bbs/showAnnounce.asp?page=1&id=2259248
sizheng0320 2005-01-17
  • 打赏
  • 举报
回复
这个帖子还没结呢啊

我自己做了一个用户控件,可多选日期的:

http://blog.csdn.net/sizheng0320/archive/2004/09/20/111114.aspx
nga96 2004-12-06
  • 打赏
  • 举报
回复
我也不会,呵
tengjian1981 2004-12-06
  • 打赏
  • 举报
回复
用JS是最好的办法!
jonescheng 2004-12-06
  • 打赏
  • 举报
回复
不需要,一个是放到Ifram中,另外就是用JAVASCRIP写的日期控件
rickjelly2004 2004-12-06
  • 打赏
  • 举报
回复
最好不要那样
不然你的日期会有问题的
日期选择后会触发后天一个算法的,改变属性的值
chinasqf 2004-12-06
  • 打赏
  • 举报
回复
干吗这么麻烦?你担心的是刷新整个网页,并不担心只刷这个控件
把控件放到IFRAME里就OK了
sizheng0320 2004-07-10
  • 打赏
  • 举报
回复
我将它设为不可选,然后为每天加了一个复选框,这样来实现多选。
之前还通过在session里面保存selecteddatecollection来实现多选,这个会自动提交。上面说的那个方法不会自动提交,要用一个按钮来提交。但是我现在在研究提交时如何遍历每个复选款,呵呵。
netphp 2004-07-10
  • 打赏
  • 举报
回复
用纯javascript脚本来做。
morality 2004-07-02
  • 打赏
  • 举报
回复
微软的 calendar 控件是有点不好用!用其他的方法或控件吧!
memoriccell 2004-07-02
  • 打赏
  • 举报
回复
你可以在calendar在客户端生成后用javascript给每个日期加上客户端的操作代码来实现你想要的功能:
<asp:Calendar id="Calendar1" style="Z-INDEX: 101; LEFT: 288px; POSITION: absolute; TOP: 168px" runat="server"></asp:Calendar></FONT>
<input type="hidden" id="hid3" runat=server>
<INPUT type="hidden" id="hid2" runat=server>
<input type="hidden" id="hid1" runat="server">
<script language="javascript">
//取得该页面中所有的超链接的数组
var e = document.links;
for(var i=0;i<e.length;i++)
{
如果是日期的链接
if(e[i].innerText >= 1 && e[i].innerText <= 31)
{
//添加onclick事件,以链接到需要的页面
e[i].onclick = function test(){ document.Form1.hid3.value = this.innerText + "/" + document.Form1.hid2.value + "/" + document.Form1.hid1.value; return false;};
}
}
</script>

后台代码:
private void Page_Load(object sender, System.EventArgs e)
{
// hid1和hid2为两个设置成runat=server的hidden,看上面的html就能知道
//这样的目的是每次月份改变后就会重新设定年、月这两个值
hid1.Value = Calendar1.SelectedDate.Year.ToString();
hid2.Value = Calendar1.SelectedDate.Month.ToString();
}
注意几点:
1.
这段脚本一定要写在calendar控件后面,否则无法找到对应的日期超链接。

2.
这里定义了两个hidden用来放置当前年份和月份,因为你的日期链接不会再进行postback动作
所以你无法通过服务器端代码进行日期的取得,必须事先将年份和日期存在hidden中备用。
年存储在hid1中,月存储在hid2中,最后取得的值存在hid3中。

3.
Calendar的SelectDate属性必须设置,否则在服务器端取到的年和月是错误的。

4.Calendar的上个月和下个月的日期必须不显示,否则日期会错误,我记得好像有这个属性,你找找看。

这样做不是很方便,你可以到网上找找用Javascript写的日历,比较方便。
chieftech 2004-07-02
  • 打赏
  • 举报
回复
我是这样处理
在文本框旁边放一个按钮
点击按钮,打开一个新的页面,在新页面中选择日期
然后把选择的日期回传到文本框

如果你需要我的代码,请和我联系
chieftech@263.net
leskey 2004-07-02
  • 打赏
  • 举报
回复
好像没有postback这个属性吧
WZCNet 2004-07-02
  • 打赏
  • 举报
回复
PostBack改为False

62,050

社区成员

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

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

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

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