2010-11-17 165 views
0

用戶從日期選擇器中選擇日期,並將日期放入文本框中。選擇更改事件未觸發(觸發)

但是,當我選擇一個日期某日期應該檢查另一個文本框日期,並給我的差異。選擇更改事件不會觸發(如預期的那樣)。

protected void dtpleavestartdate_SelectionChanged(object sender, EventArgs e) 
{ 
    string a = "NO CHANGE"; 
    a = a + dtpenddate.SelectedDate.Subtract(dtpleavestartdate.SelectedDate).ToString(); 
    Response.Write("<script>alert('" + a +"')</script>"); 
} 

回答

1

您正在使用哪個日期選擇器控件?從你的代碼看來,你正在使用服務器端事件處理 - 所以你使用的任何控件都必須提供服務器端事件。此外,它應該有一些方式來表明選擇後發生回發(如下拉菜單中的AutoPostBack屬性) - 無回發將不會發生服務器端事件。

我也建議你考慮客戶端邏輯(如果可能的話)你的場景。

+0

我使用全服務器端的編碼。即使驗證是在服務器端而不是在客戶端完成的。 – 2010-11-17 07:47:54

+0

那麼,當您選擇任何日期時,頁面發回?如果沒有,那麼你的服務器端事件不會立即觸發。 – VinayC 2010-11-17 08:15:25

1

你必須確保:

  • 在事件選項卡上的屬性頁點擊檢查,如果在事件的SelectionChanged是指定事件處理程序(在你的情況dtpleavestartdate_SelectionChanged)

  • 檢查在頁面回發之後發佈的日期與控件的默認日期不同(也許您在頁面上設置的日期如果不是page.postback),如果它們沒有區別,則事件不會被提升。

-check如果AutoPostBack屬性設置爲True