日期:2014-05-18  浏览次数:20400 次

asp.net的Calendar控件如何添加javascript写的事件处理函数
初学Ajax,想用AjaxPro.net做一个文本框textBox和Calendar的联动,当选中了calendar上的一个日期后,textBox上出现该日期。可是asp:Calendar控件里的onselectionChanged事件里不能写js函数,Test.aspx里面的相关代码如下:
<html>
<head>
...
      <script   language= "javascript ">
              function   seleDate()
              {
                    Test.SelectDate();
              }
        </script>  
</head>
<body>
  <asp:Calendar   ID= "Calendar1 "   runat= "server "   OnSelectionChanged= "seleDate() "Width= "220px ">
  ...
</body>
</html>

SelectDate()是在Test.aspx.cs中写的一个Ajax方法。

各位前辈有什么好方法呢?请教教我。

------解决方案--------------------
<asp:Calendar ID= "Calendar1 " runat= "server " OnSelectionChanged= "seleDate() "Width= "220px ">
改为:试试
<asp:Calendar ID= "Calendar1 " runat= "server " OnClick= "seleDate() "Width= "220px ">

------解决方案--------------------
可是asp:Calendar控件里的onselectionChanged事件里不能写js函
========
asp:Calendar 本身就是需要刷新的控件,好像没有能够添加有效的js客户端处理的,
即使可以,如果你不回发页面,也就无法呈现预期的Calendar效果,如选中日期高亮显示

考虑纯 dthml 实现的 calendar,如 meizzz 的日历控件
------解决方案--------------------
处理DayRender事件:

protected void Calendar1_DayRender(object sender, DayRenderEventArgs e)
{
e.Cell.Attributes[ "onclick "] = "seleDate() ";
}