【问题标题】:Textbox using Calendar Extender losing value使用日历扩展器的文本框失去价值
【发布时间】:2012-10-26 11:10:17
【问题描述】:

我有一个使用 CalendarExtender 和其他一些验证控件的文本框,代码如下:

<asp:TextBox runat="server" ID="txtPrazoData" MaxLength="10" Width="80" />
<ajax:CalendarExtender ID="cePrazoData" runat="server" TargetControlID="txtPrazoData" />

<ajax:MaskedEditValidator runat="server" ID="mevPrazoDataModal" ControlToValidate="txtPrazoData" InvalidValueMessage="<%$ Resources:Base, DataInvalida %>" InvalidValueBlurredMessage="*" Text="*" 
ControlExtender="meePrazoData" ErrorMessage="*" EmptyValueMessage="<%$ Resources:Base, CampoRequerido %>"
IsValidEmpty="false" EmptyValueBlurredText="*" ValidationGroup="GrpAcaoModal">*</ajax:MaskedEditValidator>

<ajax:MaskedEditExtender runat="server" ID="meePrazoData" TargetControlID="txtPrazoData" Mask="99/99/9999" MaskType="Date"/>
<ajax:ValidatorCalloutExtender ID="vcePrazoData" TargetControlID="mevPrazoDataModal" runat="server"/>
<asp:CompareValidator ID="cvPrazoData" runat="server" ControlToValidate="txtPrazoData" Type="Date" Operator="DataTypeCheck" ErrorMessage="<%$ Resources: Base, DataInvalida %>" Display="None" ValidationGroup="GrpAcaoModal" />
<ajax:ValidatorCalloutExtender ID="vcePrazoDataCompare" runat="server" TargetControlID="cvPrazoData" />

当我选择文本框并从日历中选择一个日期,然后选择表单的另一个控件时,文本框就失去了它的价值:

如果我键入值而不是从日历中选择它,它不会消失。没有回发发生,并且文本框没有 TextChanged 事件或任何其他关联事件。 如果我尝试使用 IE 的兼容模式来执行此操作,它会起作用。如果有帮助,我使用的是 IE9 版本 9.0.8112.16421。

【问题讨论】:

  • 使用什么版本的 Ajax 控件工具包库和 ASP.NET?您是否尝试通过将帖子中的标记粘贴到空白页来重现此问题?
  • 我不确定,因为我没有实现这个,但是如果我在项目中查找 AjaxControlToolkit dll 引用的属性,版本是 3.0.30512.1 和运行时版本 v2.0.50727。我不知道您所说的“通过将标记从您的帖子粘贴到空白页面来重现此问题”。
  • 我尝试在本地环境中重现它,但无法重现此问题。我使用了您帖子中的标记。
  • 如果您删除除文本框、日历扩展器和蒙版编辑器扩展器之外的所有控件会怎样?您仍然遇到同样的问题吗?

标签: asp.net vb.net ajaxcontroltoolkit


【解决方案1】:

我打赌你的验证器禁用了这个值。检查日历和您的验证器是否具有相同的日期格式。

【讨论】:

  • 我去掉了验证器和其他控件,只留下了 Textbox 和 CalendarExtender 并且仍然发生。
猜你喜欢
  • 1970-01-01
  • 2023-03-14
  • 1970-01-01
  • 2011-08-17
  • 1970-01-01
  • 1970-01-01
  • 2016-04-22
  • 1970-01-01
相关资源
最近更新 更多