为了账号安全,请及时绑定邮箱和手机立即绑定

CalendarExtender与TextBox Readonly

标签:
前端工具

    最近在看一些.NET Ajax的东西,发现一个小问题,就是当我在将TextBox的ReadOnly属性设置为true的时候,使用CalendarExtender后无法获得TextBox.Text的值。

    在选择日期的时候,不允许用户修改TextBox里的值,这是比较常见的一种做法,目的是不希望再对用户的输入做进一步的格式验证。请看下面的代码:

view plaincopy to clipboardprint?

  1. <asp:TextBox ID="txtDayOfBirth" ReadOnly="True" runat="server" Width="100px"></asp:TextBox>  

  2. <asp:ImageButton ID="datePickerImg" runat="server" ImageUrl="~/images/calendar.png" AlternateText="请点击本按钮以选择日期" CausesValidation="false" />  

  3. <Ajax:CalendarExtender   ID="dayOfBirthCalendarExtender"    

  4.           runat="server"    

  5.           Enabled="True"    

  6.           TargetControlID="txtDayOfBirth"    

  7.           CssClass="MyCalendar"  

  8.           PopupButtonID="datePickerImg"    

  9.           Format="yyyy年MM月dd日"    

  10.           Animated="false" />  

    在运行以后,可以通过TextBox边上的日历按钮来选择日期,但是这样做会导致读不到TextBox里文本的问题。解决办法其实很简单,就是,先不在设计中加入ReadOnly属性,而是在Page_Load中动态加入该属性。代码如下:

ASPX页面

view plaincopy to clipboardprint?

  1. <asp:TextBox ID="txtDayOfBirth" runat="server" Width="100px"></asp:TextBox>     

  2. <asp:ImageButton ID="datePickerImg" runat="server" ImageUrl="~/images/calendar.png" AlternateText="请点击本按钮以选择日期" CausesValidation="false" />     

  3. <Ajax:CalendarExtender   ID="dayOfBirthCalendarExtender"       

  4.           runat="server"       

  5.           Enabled="True"       

  6.           TargetControlID="txtDayOfBirth"       

  7.           CssClass="MyCalendar"     

  8.           PopupButtonID="datePickerImg"       

  9.           Format="yyyy年MM月dd日"       

  10.           Animated="false" />    

C#后台代码

view plaincopy to clipboardprint?

  1. protected void Page_Load(object sender, EventArgs e)   

  2. {   

  3.     if (!Page.IsPostBack)   

  4.         txtDayOfBirth.Attributes.Add("readonly""true");   

  5. }   

    希望本文能帮到遇到类似问题的网友。

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消