.net  CalendarExtender引入实现datepicker

在webForm中引入CalendarExtender,如下。

<asp:TextBox ID="DatePicker" runat="server" Width="160px"></asp:TextBox>

<asp:CalendarExtender ID="DatePicker_CalendarExtender" runat="server"

Enabled="True" TargetControlID="DatePicker">

</asp:CalendarExtender>

但引入后报错,源码中如下:

前端中报错如下:

在前端源码引入下述代码,保存页面后,报错得以解决。

<%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="asp" %>

产生原因:CalendarExtender依赖于Ajax注册,但未引入注册Ajax控件注册组件,导致程序报错。

常用设置:

  • 给CalendarExtender设置默认值为当天:  CalendarExtender_Start.SelectedDate =          Today,这样打开时DatePicker默认为当天日期。

  • 若要datepicker设置为只读,这样不能手动键入值,只能选择;同时要能在后端还能获取txtDate.text; 若后端设置txtDate.ReadOnly=True或ReadOnly="true" ',但在后端不能获取txtDate.text。其设置在前端设置datepicker的textbox,如下:

    'onfocus=this.blur()    刚获取焦点,就强制分开,这样就不用设置readonly

<asp:TextBox ID="txtDate" runat="server" Width="160px" placeholder="日期"                onfocus = this.blur()></asp:TextBox> '

<asp:CalendarExtender ID="CalendarExtender_Start" runat="server"

Enabled="True" TargetControlID="txtDate">

</asp:CalendarExtender>

或者在后端代码中设置:   txtDate.Attributes.Add("readonly", "true")

这样datepicker就只能选择,不能输入了。

弄好后如下:

记之以备忘。

(0)

相关推荐