【问题标题】:AJAX Calendar Extender / Textbox values always null after postbackAJAX 日历扩展器/文本框值在回发后始终为空
【发布时间】:2011-11-09 11:33:28
【问题描述】:

我确信这是一个非常简单且易于回答的问题,但我研究这个问题太久了,而且对 ASP 很陌生,我似乎找不到有效的解决方案。

我有一个 ASP 日历扩展器,单击它并按预期显示日历,所选日期出现在文本框中,但是当页面随后回发时,我无法从 textbox.text 或calendarextender.selecteddate 属性,我通过尝试将这些值分配给 page_load 事件中的字符串变量来测试这一点。

我错过了什么吗?

到目前为止,这是我的代码:

我在表单开头声明了脚本管理器

   <cc1:ToolkitScriptManager ID="ToolkitScriptManager1" runat="server"/>

然后我的文本框/日期选择器在表格下方

 <asp:TextBox ID="DateChooser"  
                     runat="server" 
                     ReadOnly="true"
                     style="text-align: center" Width="85px" 
                     OnTextChanged="DateChooser_TextChanged"
                     AutoPostBack="true" />  

         <div style='position:relative; z-index:1'>

            <cc1:CalendarExtender CssClass="cal_Theme1" 
                                  ID="DateChooser_CalendarExtender" 
                                  runat="server" 
                                  Enabled="True" 
                                  TargetControlID="DateChooser" 
                                  PopupPosition="Right" 
                                  Format="dd MMM yyyy" 
                                  />
      </div>
    </td>

【问题讨论】:

    标签: asp.net ajax vb.net


    【解决方案1】:

    由于您已将文本框 ReadOnly 设置为 true,因此它会丢失客户端代码在回发时执行的更改。点击此链接获得更详细的解释:TextBox.ReadOnly Property 考虑通过客户端代码在文本框上设置只读属性。

    【讨论】:

    • 谢谢,我从没想过只读属性会让文本框失去它的变化。我会考虑以另一种方式设置。
    猜你喜欢
    • 1970-01-01
    • 2012-10-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-23
    • 2016-03-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多