2011-09-06 127 views
3

我在asp.net 3.5應用程序中使用了Ajax日曆擴展控件(來自here)。獲取Ajax日曆擴展控件的選定日期

我的問題:如何從代碼隱藏文件中的Ajax日曆擴展控件中選擇日期?

說例如我從日曆中選擇01/01/2011,然後我需要在代碼後面的這個日期,因爲我需要檢查空值。

讓我知道任何查詢。

請指導。謝謝!

問題,代碼更新

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

回答

4

不要設置屬性只讀= 「真」您文本框。

Joteke's Blog

如果文本框的只讀屬性是「真」,回傳數據不會被 加載例如,它主要是指文本框從 服務器端的角度來看是隻讀(客戶端更改將被忽略)。如果您想 結核病是隻讀的「老方式」使用

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

因爲這將不影響服務器端功能。

+0

非常感謝,它對我有很大幫助 –

0

您可以運用文本框是由您calenderextender 「擴展」 文本屬性

+0

我已經使用過。該值始終爲空,即使選擇了日期 –

+0

@Xor power您是否可以將您的代碼和標記發佈到您使用的位置,以便我們可以查看它? – Bassetassen

+0

用代碼更新的問題 –

1

試試這個代碼。我在我的網站中使用了這段代碼,它工作正常。在按鈕單擊事件上,我可以使用文本框的.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

onkeypress事件(文本框)確實符合我的要求嗎? –

+0

。textbox的.text屬性總是給出null值(正如問題所述)。給予支持鏈接 –

+0

由於我的文本框處於只讀模式(readonly = true),所以這些值不會被提取 –

0

不幸的是將例如,如果文本框未被智能感知檢測到,或者被嵌入到GridView中,則Page_Load()事件中的文本框控件中的屬性無用。

因此,爲了避免所有的頭痛,我只是把TextBox控件成「僞」的標籤控制,並且仍然能夠使用AjaxControlToolKit CalendarExtender「標籤」

上把onKeyPress = "javascript: return false;" onPaste = "javascript: return false;"在文本框中。這樣,即使啓用了文本框,用戶也無法修改數據,並且迫使他們使用Calendar控件,而這正是您想要的。我們不應該讓用戶能夠輸入日期。

相關問題