Asp.net 获取ajax日历扩展程序控件的选定日期

Asp.net 获取ajax日历扩展程序控件的选定日期,asp.net,ajax,asp.net-ajax,ajaxcontroltoolkit,Asp.net,Ajax,Asp.net Ajax,Ajaxcontroltoolkit,我在asp.NET3.5应用程序中使用了Ajax日历扩展程序控件(from) 我的问题:如何从代码隐藏文件中的Ajax calendar extender控件获取所选日期 比如说,我从日历中选择了2011年1月1日,然后我需要代码隐藏中的这个日期,因为我需要检查空值 如果有任何疑问,请告诉我 请导游。谢谢 问题已用代码更新 &nbsp; <asp:Label ID="lblStartDate" runat="server" Text="<%$ Resources:Resou

我在asp.NET3.5应用程序中使用了Ajax日历扩展程序控件(from)

我的问题:如何从代码隐藏文件中的Ajax calendar extender控件获取所选日期

比如说,我从日历中选择了2011年1月1日,然后我需要代码隐藏中的这个日期,因为我需要检查空值

如果有任何疑问,请告诉我

请导游。谢谢

问题已用代码更新

 &nbsp; <asp:Label ID="lblStartDate" runat="server" Text="<%$ Resources:Resource, lblStartDate %>" CssClass="boldlabelText"></asp:Label>
                                        &nbsp;<asp:TextBox ID="txtStartDate" runat="server" ReadOnly="true" MaxLength="10"></asp:TextBox>
                                        <asp:ImageButton runat="Server" ID="imgStartDate" ImageUrl="~/Images/Calender.png" AlternateText="Click to show calendar" />
                                        <ajax:CalendarExtender ID="CalStartDate" runat="server" TargetControlID="txtStartDate" Format="yyyy-MM-dd" PopupButtonID="imgStartDate">
                                        </ajax:CalendarExtender>

使用calenderextender“扩展”的文本框中的文本属性,尝试以下代码。我已经在我的网站上使用了这段代码,它工作得很好。在button click事件中,我可以使用textbox的.text属性获取在textbox中输入的日期值

<asp:TextBox ID="txtDateFrom" runat="server" Width="70px"></asp:TextBox>
<ajax:CalendarExtender ID="CalendarExtender1" runat="server" CssClass="MyCalendar" Format="MM/dd/yyyy" TargetControlID="txtDateFrom" Enabled="True"></ajax:CalendarExtender>

<ajax:MaskedEditExtender ID="MaskedEditExtender1" runat="server" AcceptNegative="Left" DisplayMoney="Left" ErrorTooltipEnabled="True" InputDirection="RightToLeft" Mask="99/99/9999" MaskType="Date" TargetControlID="txtTranDateFrom" CultureAMPMPlaceholder="" CultureCurrencySymbolPlaceholder="" CultureDateFormat="" CultureDatePlaceholder="" CultureDecimalPlaceholder="" CultureThousandsPlaceholder="" CultureTimePlaceholder="" Enabled="True"></ajax:MaskedEditExtender>

不要在文本框上设置属性ReadOnly=“true”

如果TextBox的ReadOnly属性为“true”,则回发数据不会被删除 它本质上意味着文本框是只读的 服务器端立场(客户端更改将被忽略)。如果你 希望TB以“旧方式”使用为只读

因为这不会影响服务器端功能


您还可以通过请求访问只读文本框内容。表单集合:

申请表[txtStartDate.UniqueID]

具有与相同的效果

txtStartDate.text


参考:

不幸的是,如果intellisense未检测到文本框,或者例如该文本框嵌入到GridView中,则在Page_Load()事件的文本框控件中设置
ReadOnly
属性是无用的

因此,为了避免所有这些麻烦,我简单地将TextBox控件转换为“psuedo”标签控件,并且仍然能够在“标签”上使用AjaxControlToolKit CalendarExtender


onKeyPress=“javascript:return false;”onPaste=“javascript:return false;”“
放入文本框中。这样,即使启用了文本框,用户也无法修改数据,而您强制他们使用日历控件,这正是您真正想要的。我们不应该给用户输入日期的能力。

我已经用过了。该值始终为空,即使日期为selected@Xorpower你能把你的代码和标记贴在你使用它的地方吗?这样我们就可以看一看了?onkeypress事件(textbox的)满足我的要求吗?textbox的text属性总是给出空值(如前面提到的)。提供支持性链接因为我的文本框处于只读模式(readonly=true)没有获取值谢谢,这对我帮助很大
<asp:TextBox ID="txtDateFrom" runat="server" Width="70px"></asp:TextBox>
<ajax:CalendarExtender ID="CalendarExtender1" runat="server" CssClass="MyCalendar" Format="MM/dd/yyyy" TargetControlID="txtDateFrom" Enabled="True"></ajax:CalendarExtender>

<ajax:MaskedEditExtender ID="MaskedEditExtender1" runat="server" AcceptNegative="Left" DisplayMoney="Left" ErrorTooltipEnabled="True" InputDirection="RightToLeft" Mask="99/99/9999" MaskType="Date" TargetControlID="txtTranDateFrom" CultureAMPMPlaceholder="" CultureCurrencySymbolPlaceholder="" CultureDateFormat="" CultureDatePlaceholder="" CultureDecimalPlaceholder="" CultureThousandsPlaceholder="" CultureTimePlaceholder="" Enabled="True"></ajax:MaskedEditExtender>
TextBox1.Attributes.Add("readonly","readonly")