我有一个asp:TextBox控件和一个与之相关的javascript日历函数。
<asp:TextBox ID="txtFromDate" ReadOnly="true" runat="server" style="font-family:Verdana; font-size:11px;"></asp:TextBox>
<a href="javascript: void(0);" onmouseover="if (timeoutId) clearTimeout(timeoutId);window.status='Show Calendar';return true;" onmouseout="if (timeoutDelay) calendarTimeout();window.status='';" onclick="g_Calendar.show(event,'formAddCosting.txtFromDate',false); return false;">
<img src="Images/calendar.gif" name="calendarFromDate" width="34" border="0" alt="" /></a>
我可以从javascript日历中选择日期并将其显示在文本框中。但是,当我在后面的代码中尝试检查文本框的日期以进行验证时,dtFrom = Convert.ToDateTime(txtFromDate.Text.ToString());
在调试期间显示为""
。如何从代码后台获取textbox的值?我用的是VB2005,ASP.Net2.0和C#。提前谢谢。
发布于 2012-07-09 10:26:16
这是因为您的TextBox
是只读的:http://www.codeproject.com/Articles/33649/ViewState-and-Readonly-Property-of-Textbox
因此,要么启用并验证它(如果用户想要手动输入日期),要么使用HiddenField
存储日历中的日期。
我会推荐第一个选项,因为最好不要把用户当成孩子。
发布于 2012-07-09 10:33:09
执行以下步骤从TextBox获取值:
ReadOnly="false"
属性,因为这是您无法获取文本框的值的唯一原因。这样做的原因是,当使用ReadOnly="true“或Enabled="false".TxtFromDate.Attributes.Add(“只读”,“只读”);
https://stackoverflow.com/questions/11393093
复制