在大家编写的asp.net程序中,经常会输入日期, 为了简化日期的输入和保证日期输入的正确性,我们可以使用一个日历让用户来选择一个日期。我们可以使用.net中自带的日历控件来设计一个输入日期的部件。具体方法如下:
首先,我们设计一个日期选择的Web页面,在这个web页面上放置一个日历控件,然后再放两个TextBox控件,TextBox控件的作用是临时存放一些数据。
TextBox1控件用来存放选择用一个日期后的日期值,可以在日历的OnSelectionChanged事件中进行赋值。
protected void Calendar1_SelectionChanged(object sender, EventArgs e)
{
TextBox1.Text = Calendar1.SelectedDate.ToString();
}
TextBox2控件用来存放传送给本页面的输入窗口上输入控件的控件名称,用来写回日期值用的。它可以在页面的OnLoad事件中进行赋值,取出传递过来的参数值即可。
protected void Page_Load(object sender, EventArgs e)
{
TextBox2.Text = Request.Params["ControlName"];
}
再在这个页面写上一段JavaScript程序放在页面最后,作用是判断TextBox1的值如果不为空,则把TextBox1的值写回父窗口的输入字段中,然后关闭窗口即可。代码如下:
<script type="text/javascript">
if (document.all.TextBox1.value != "")
{
window.opener.document.all[document.all.TextBox2.value].value = document.all.TextBox1.value;
window.close();
}
</script>
这样我们的日期选择窗口就设计好了,下面我们就使用这个窗口进行日期的选择输入。
设计一个Web页面,放置一个TextBox控件,旁边放置一个按钮,在按钮的点击事件中打开日期输入窗口,并把TextBox的名字作为参数传递过去即可。
<input id="Button1" type="button" value="button" οnclick="window.open('default2.aspx?ControlName=TextBox1');"/>
这样我们就实现了日期的选择输入。