0

我有一个 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());显示。""如何从后面的代码中获取文本框的值?我正在使用 VB2005、ASP.Net2.0 和 C#。提前致谢。

4

2 回答 2

2

采取以下步骤从 TextBox 中获取价值:

  1. 从文本框中删除ReadOnly="false"属性,因为这是您无法获取文本框值的唯一原因。原因是当使用 ReadOnly="true" 或 Enabled="false" 时,您的 texytbox 的值不会保留在视图状态中。

  2. 要在年龄加载函数的文件后面的代码中使文本框只读,请编写以下代码:

    txtFromDate.Attributes.Add("readonly","re​​adonly");

于 2012-07-09T10:33:08.540 回答
1

那是因为你TextBox是只读的:http: //www.codeproject.com/Articles/33649/ViewState-and-Readonly-Property-of-Textbox

因此,要么启用并验证它(如果用户想手动输入日期),要么使用 aHiddenField来存储日历中的日期。

我会推荐第一个选项,因为最好不要像对待孩子一样对待用户。

于 2012-07-09T10:26:16.243 回答