2010-08-12 69 views
0

我設計我的模板字段的一個一個GridView會像如何比較在GridView的文本框

<asp:TemplateField> 
    <ItemTemplate> 
     <asp:Label ID="lblTrialPeriodEnds" runat="server" 
      Text='<%# Eval("trialPeriodEnds","{0:dd/MM/yyyy}") %>' 
      Width="61px"></asp:Label> 
    </ItemTemplate> 
    <HeaderTemplate> 
     TrialPeriodEnds 
    </HeaderTemplate> 
    <EditItemTemplate> 
     <asp:TextBox Id="txtRenew" runat="server" 
      Text='<%# Eval("trialPeriodEnds","{0:dd/MM/yyyy}") %>' 
      Width="61px" /> 
    </EditItemTemplate> 
</asp:TemplateField> 

現在我需要的是我會在文本後有一個彈出日曆日期的差異當我點擊編輯框。如果我選擇一個日期大於日期在文本框中我想我的數據庫列設置爲是存在的..

任何想法請....

+0

我猜你使用的日曆控件不回發? – 2010-08-12 08:39:26

+0

那麼,你想抓住日曆的變化事件?你使用的是asp.net日曆控件嗎? – CoderHawk 2010-08-12 08:41:11

+0

我正在使用javascript彈出日曆 – Dotnet 2010-08-12 08:44:44

回答

1

您可以從文本框轉換爲文本的DateTime對象並使用DateTime類方法或僅減去兩個DateTime對象,這些對象將爲您提供TimeSpan對象。然後您可以根據您的要求比較日期。

+0

手段最初我必須將我的日期值存儲到一個字符串,然後我應該比較對.. – Dotnet 2010-08-12 09:29:07

+0

@Dorababu。是的,最初你必須將文本存儲到一個字符串中。例如, string dateString = txtDate.Text; DateTime time = DateTime.Parse(dateString); 注 - 您需要添加異常處理代碼,因爲如果Parse()方法失敗,它將引發異常。 – Shekhar 2010-08-16 10:29:02

0

假設彈出窗口正在使用客戶端腳本並且不會導致回發。這是您的問題的快速解決方案。
1.在頁面中添加隱藏字段。確保你包含runat =「server」,以便你可以在你的代碼中訪問它。

2.創建每當日曆日期被點擊

Function CompareDate(str CalendarDate) 
{ 
var Date1 = new Date($("txtRenew").Text); 
var Date2 = new Date(CalendarDate); 

if (Date2 > Date1) 
{ 
    $("#hdnValue").value = "Yes"; 
} 
else 
{ 
    $("#hdnValue").value = "No"; 
} 
} 

3.從代碼檢索hdnValue後面將要調用的函數。

日曆應該有一個DateChanged事件,您可以添加此功能。