我希望当我在开始文本框(TxtStartDate)中输入dd / mm / yyyy中的日期时,它将通过在上面输入的日期中添加一年减去一天来自动填充结束文本框(TxtEndDate),例如,如果用户输入是' 15/04 2014'然后输出将来到2015年4月4日' 请使用javascript,jquery或asp.net c#
提供您的解决方案我的HTML代码:
<tr>
<td></td>
<td style="text-align: right"><asp:TextBox ID="TxtEndDate" runat="server"
Width="177px" AutoPostBack="True" style="height: 22px"></asp:TextBox>
</td>
<td style="text-align: right">end date</td>
<td style="text-align: right">
<asp:TextBox ID="TextStartDate" runat="server" Width="177px"
AutoPostBack="True" style="height: 22px"></asp:TextBox></td>
<td style="text-align: right; direction: rtl;">
start date
</td>
</tr>
我的asp.net c#code
中有两个文本框答案 0 :(得分:1)
对于此任务,您可以利用OnTextChanged
事件的asp.net文本框控件。要自动生成代码,您可以直接在设计模式中双击txt_Start
。要触发此事件,您需要将此AutoPostBack="True"
添加到txt_Start
请参阅以下内容:
Start:<asp:TextBox ID="txt_Start" runat="server" AutoPostBack="True" OnTextChanged="txt_Start_TextChanged"></asp:TextBox>
<asp:Label ID="lbl_wrongdate" runat="server" Text=""></asp:Label>
<br />
End: <asp:TextBox ID="txt_End" runat="server"></asp:TextBox>
然后,逻辑非常简单,我认为这是不言自明的:
protected void txt_Start_TextChanged(object sender, EventArgs e)
{
DateTime start = new DateTime();
//using System.Globalization;
if (DateTime.TryParseExact(txt_Start.Text, "dd/MM/yyyy", CultureInfo.InvariantCulture, DateTimeStyles.None, out start))
{
DateTime end = start.AddYears(1).AddDays(-1);
txt_End.Text = end.ToString("dd/MM/yyyy");
lbl_wrongdate.Text = "";
}
else
{
lbl_wrongdate.Text = "Wrong date format. Allowed formats is dd/mm/yyyy";
txt_End.Text = "";
}
}
在您输入txt_Start
的有效日期并按Tab
后,您会看到txt_End
已自动设置。
答案 1 :(得分:0)
date.AddYears()
和date.Adddays()
首先使用
添加1年Date dtedate = new Date()
dtedate=txtstartdate.Addyears(1)
然后
减去1天dtedate1=dtedate.Adddays(-1)
然后分配给控件
txtEnddate=dtedate1
希望这会有所帮助
<强>更新强>
您可以将代码简化为单行。因此代码将是
Date dtedate = new Date()
dtedate=datetime.parse(txtstartdate.text,"dd/MM/yyyy");
txtEnddate.text=convert.tostring(dtedate.AddYears(1).AddDays(-1));