【问题标题】:selected date from calendarextender is not populated in the asp.net text box从 calendarextender 选择的日期未填充在 asp.net 文本框中
【发布时间】:2014-03-13 06:19:07
【问题描述】:

我有一个文本框和图像按钮。单击图像按钮后,将出现日历扩展器,并且从日历扩展器中选择的日期应填充到文本框中。但未填充日期。请指导我解决此问题。

这是我的代码

<asp:TextBox ID="txtAccidentDate" MaxLength="10" Text=""
     runat="server" SkinID="ClaimTextBox" Width="80px" TabIndex="1" />

<cc1:MaskedEditExtender ID="MaskedEditExtender2" runat="server" 
      TargetControlID="txtAccidentDate" Mask="99/99/9999"
      MessageValidatorTip="false" MaskType="Date"
      DisplayMoney="Left" AcceptNegative="Left"
      ErrorTooltipEnabled="True" />

<asp:RequiredFieldValidator ID="RequiredFieldValidator1"
     runat="server" ControlToValidate="txtAccidentDate" 
     Display="None" 
     ErrorMessage="Please select Accident Date" 
      ValidationGroup="Insured" SetFocusOnError="true">
</asp:RequiredFieldValidator>

<asp:RegularExpressionValidator ID="RegularExpressionValidator1" 
     runat="server" ControlToValidate="txtAccidentDate"
     ValidationGroup="Insured" Display="None"
     ErrorMessage="Please Enter valid Date" 
     SetFocusOnError="true"
     ValidationExpression="(((0?[1-9]|1[012])[/.](0?[1-9]|1\d|2[0-8])|(0?[13456789]|1[012])[/.](29|30)|(0?[13578]|1[02])/31)[/.](19|[2-9]\d)\d{2}|0?2[/.]29[/.]((19|[2-9]\d)(0[48]|[2468][048]|[13579][26])|(([2468][048]|[3579][26])00)))">
</asp:RegularExpressionValidator>

<cc1:ValidatorCalloutExtender ID="ValidatorCalloutExtender5" 
     runat="server" Enabled="True"
     TargetControlID="RegularExpressionValidator2">
</cc1:ValidatorCalloutExtender>

<cc1:ValidatorCalloutExtender ID="ValidatorCalloutExtender6"
     runat="server" Enabled="True" 
     TargetControlID="RequiredFieldValidator1">
</cc1:ValidatorCalloutExtender>

<cc1:CalendarExtender ID="CalendarExtender2" 
     runat="server" Enabled="True"
     PopupButtonID="imgcal" Format="MM/dd/yyyy"
     TargetControlID="txtAccidentDate" />

<asp:ImageButton ID="imgcal" runat="server" CausesValidation="false" 
     ImageUrl="~/Images/Calendar_scheduleHS.png" /> 

<span class="helpInformantion">(mm/dd/yyyy)</span> 

【问题讨论】:

  • 您能否尝试在文本框上不使用 MaskedEditExtender 控件。我记得前段时间我遇到了类似的问题,即 MaskedEditExtender 控件与 CalendarExtender 冲突。

标签: asp.net


【解决方案1】:

我认为您使用 ScriptManager 是对的。只需使用 ToolScriptManager 而不是 ScriptManager

即,

改变这个

<asp:ScriptManager ID="ScriptManager1" runat="server"></asp:ScriptManager>

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

试试这个代码

 <asp:ToolkitScriptManager ID="ToolkitScriptManager1" runat="server"></asp:ToolkitScriptManager>
        <asp:TextBox ID="txtAccidentDate" MaxLength="10" Text="" runat="server" SkinID="ClaimTextBox" Width="80px" TabIndex="1" />

        <asp:MaskedEditExtender ID="MaskedEditExtender2" runat="server" TargetControlID="txtAccidentDate" 
            Mask="99/99/9999" MessageValidatorTip="false" MaskType="Date" DisplayMoney="Left" AcceptNegative="Left" ErrorTooltipEnabled="True" />

      <asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" ControlToValidate="txtAccidentDate"
            Display="None" ErrorMessage="Please select  Accident Date" ValidationGroup="Insured"
            SetFocusOnError="true">
        </asp:RequiredFieldValidator>
        <asp:RegularExpressionValidator ID="RegularExpressionValidator1" runat="server" ControlToValidate="txtAccidentDate"
            ValidationGroup="Insured" Display="None" ErrorMessage="Please Enter valid Date"
            SetFocusOnError="true" ValidationExpression="(((0?[1-9]|1[012])[/.](0?[1-9]|1\d|2[0-8])|(0?[13456789]|1[012])[/.](29|30)|(0?[13578]|1[02])/31)[/.](19|[2-9]\d)\d{2}|0?2[/.]29[/.]((19|[2-9]\d)(0[48]|[2468][048]|[13579][26])|(([2468][048]|[3579][26])00)))">
        </asp:RegularExpressionValidator>
        <asp:ValidatorCalloutExtender ID="ValidatorCalloutExtender5" runat="server" Enabled="True"
            TargetControlID="RegularExpressionValidator1">
                                        </asp:ValidatorCalloutExtender>
        <asp:ValidatorCalloutExtender ID="ValidatorCalloutExtender6" runat="server" Enabled="True"
            TargetControlID="RequiredFieldValidator1">
                                        </asp:ValidatorCalloutExtender>
        <asp:CalendarExtender ID="CalendarExtender2" runat="server" Enabled="True" PopupButtonID="imgcal"
            format="MM/dd/yyyy" TargetControlID="txtAccidentDate" />
        <asp:ImageButton ID="imgcal" runat="server" CausesValidation="false" ImageUrl="~/Images/Calendar.png" />
        <span class="helpInformantion">(mm/dd/yyyy)</span>

【讨论】:

  • @senthilstayss 复制我上面的代码并试试这个而不是你的代码
  • 我也试过你的代码。它说 ToolScript 管理器不是已知元素。但是当我添加 .它没有显示任何警告但不起作用。我错过了要安装的东西吗?提前谢谢..
  • 您使用的是哪个版本的 Ajax ToolKir?
  • ajax控制工具包3.0.30512.0
  • 请使用最新版本的 Ajax 工具包...链接这里ajaxcontroltoolkit.codeplex.com/releases/view/116091
【解决方案2】:

您必须编写代码以将所选日历日期设置为文本框。 您可以通过在日历的 SelectionChanged 事件

上编写代码来做到这一点

你的代码应该是这样的

 protected void calendarextender_SelectionChanged(object sender, EventArgs e)
 {
   txtAccidentDate.text = calendarextender.SelectedDate;
 }

这里的日历扩展器是你的扩展器的ID。

【讨论】:

  • Man..that 是扩展事件。没有针对那个的 SelectionChanged 事件
  • 哦,对不起,我误会了。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-05-30
  • 1970-01-01
  • 1970-01-01
  • 2018-04-16
  • 2012-05-29
  • 2012-09-03
相关资源
最近更新 更多