Получить выбранную дату элемента управления расширением календаря ajax - PullRequest
3 голосов
/ 06 сентября 2011

Я использовал элемент управления расширением календаря Ajax (из здесь ) в своем приложении asp.net 3.5.

Мой вопрос: Как получить выбранную дату из элемента управления расширением календаря Ajaxв коде позади файла?

Скажем, например, я выбираю 01/01/2011 из календаря, тогда мне нужна эта дата в коде позади, так как мне нужно проверить нулевые значения.

letЯ знаю, для любого запроса.

Пожалуйста, руководство.Спасибо!

Вопрос обновлен кодом

 &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>

Код позади (.cs)

if (txtStartDate.Text.Equals(string.Empty))  // The text value always comes null
        {
            lblStartDateM.Visible = true; 
            txtStartDate.BackColor = Color.FromArgb(255, 255, 235);
            blnIsValid = false;
        }

Ответы [ 5 ]

4 голосов
/ 03 ноября 2011

Вы также можете получить доступ к содержимому текстового поля ReadOnly через коллекции Request.Form:

Request.Form [txtStartDate.UniqueID]

имеет тот же эффект, что и

txtStartDate.text

Ссылка: http://www.aspsnippets.com/Articles/ASP.Net-AJAX-CalendarExtender---Get-selected-date-from-ReadOnly-TextBox.aspx

4 голосов
/ 06 сентября 2011

Не устанавливайте свойство ReadOnly = "true" в вашем TextBox.

Из Блог Йотеке

Если свойство ReadOnly TextBox имеет значение «true», данные обратной передачи не будут например, это означает, что TextBox доступен только для чтения из точка зрения на стороне сервера (изменения на стороне клиента будут игнорироваться). если ты чтобы туберкулез читался только по-старому, используйте

TextBox1.Attributes.Add("readonly","readonly") 

, поскольку это не повлияет на функциональность на стороне сервера.

1 голос
/ 06 сентября 2011

Попробуйте этот код. Я использовал этот кусок кода на моем сайте, и он работает нормально. При событии нажатия кнопки, я могу получить значение даты, введенное в текстовое поле, используя свойство .text текстового поля.

<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>
0 голосов
/ 02 июня 2015

К сожалению, установка атрибута ReadOnly в элементе управления textbox для события Page_Load () бесполезна, если текстовое поле не обнаружено intellisense или встроено, например, в GridView.

Так что, чтобы избежать всехЭта головная боль, я просто превратил элемент управления TextBox в элемент управления меткой «psuedo» и все еще мог использовать AjaxControlToolKit CalendarExtender для «label»

Поместить onKeyPress = "javascript: return false;" onPaste = "javascript: return false;" в текстовое поле.Таким образом, даже если текстовое поле включено, пользователь не сможет изменять данные, и вы заставляете их использовать элемент управления Calendar, который действительно является тем, что вам нужно.Мы не должны давать пользователям возможность вводить даты.

0 голосов
/ 06 сентября 2011

Используйте свойство text из вашего текстового поля, которое "расширено" вашим calenderextender

...