【问题标题】:How to get the text of a textbox after setting the value using javascript calendar in c#?在 c# 中使用 javascript 日历设置值后如何获取文本框的文本?
【发布时间】:2012-07-09 10:18:45
【问题描述】:

我有一个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#。提前致谢。

【问题讨论】:

  • @Tim Schmelter,我在这里使用 sFromDate = Request.Form["txtFromDate"].ToString(); 来做到这一点,sFromDate 是一个字符串变量。但我不确定,为什么我需要使用 Request.Form 因为文本框已经是服务器控件?顺便说一句,谢谢你的帮助。 :)
  • @Tim Schmelter,还有一件事(与问题无关),如何在 cmets 中标记代码行?

标签: javascript asp.net c#-2.0


【解决方案1】:

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

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

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

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

【讨论】:

    【解决方案2】:

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

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

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

    【讨论】:

      猜你喜欢
      • 2011-05-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-11-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多