2010-11-17 114 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