【问题标题】:AJAX Calendar extender on modalpopup returns nullmodalpopup 上的 AJAX 日历扩展器返回 null
【发布时间】:2009-06-02 07:32:23
【问题描述】:

我在从 calextender 的模态弹出窗口中获取日期时间时遇到了一些问题。

<asp:TextBox ID="txtPopEndDate" runat="server" Enabled="false"></asp:TextBox>
<img id="calButton" alt="" title="Show Calendar" src="~/App_Themes/Main/img/calendar.png"
                        runat="server" height="20" style="cursor: hand;" />
<ajax:CalendarExtender Animated="true" TargetControlID="txtPopEndDate"
                        runat="server" PopupButtonID="calButton"
                        Enabled="true" ID="calExtender" Format="dd/MM/yyyy"/>

是我必须选择日期的控件,现在当我按下确定按钮时,我会处理包括日期在内的数据。但是,如果我尝试使用 calExtender.selectedDate 属性获取日期,我什么也得不到。手动从文本框中获取字符串并对其进行解析也是如此。

我不得不提一下,该弹出窗口上的文本框和下拉菜单中的其他数据可以正常工作。在这里的任何帮助将不胜感激。

【问题讨论】:

    标签: asp.net asp.net-ajax


    【解决方案1】:

    您的文本框已启用 = false。我认为这会在 html 中吐出一个禁用属性设置为 true,因此表单的帖子不会发送该值。为什么不想启用文本框?

    我还假设您在回发后尝试获取价值?这是真的吗?

    【讨论】:

      【解决方案2】:

      是的,

      与此同时,我找到了解决问题的方法。正如你所说,文本框显然需要启用。这意味着错误日期的选项。 我从文本框中获取值并使用 DateTime.TryParse 以这种方式解析它以确保正确的日期。

      如果有人有更好的选择,请告诉我

      【讨论】:

        【解决方案3】:

        我们在整个应用程序中对链接到 CalendarExtender 的文本框使用了 Enabled="false",没有任何问题。然后我在拒绝合作的页面上添加了一个日期选择器。 TextBox 值在 PostBack 上永远不可用。

        我在这里找到了解决方案: http://www.west-wind.com/weblog/posts/2005/Dec/20/ASPNET-20-ReadOnly-behavior-change-when-EnableViewState-is-false

        我发现的是:

        1. 我可以设置 ReadOnly = true,然后使用 TextBox1.text = Request[TextBox1.UniqueID] 从 PostBack 上的请求中检索值。

        2. 我可以使用TextBox1.Attribute.Add("readonly", "readonly"),然后按预期设置Text属性。

        3. 我无法使用Enabled = false;TextBox1.Attribute.Add("disabled", "disabled") 检索值

        我们没有在这个页面上禁用 ViewState,我们也没有在其他页面上得到这个行为,所以我猜这个行为也可以由其他东西触发。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多