zoukankan      html  css  js  c++  java
  • 【Ajax】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. }   

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

  • 相关阅读:
    html不点击提交,自动post
    wpf slider刻度
    visual studio 的 code snippet(代码片段)
    更换手机号之前
    post提交
    动态修改settings
    获取文件数据流+叠加byte数组(给byte数组加包头包尾)
    装箱与拆箱
    ue4中窗口打开web地址
    C++通过Callback向C#传递数据,注意问题
  • 原文地址:https://www.cnblogs.com/daxnet/p/1686987.html
Copyright © 2011-2022 走看看