1

我正在使用带有 C# 的 .NET 框架 1.1。我的问题描述如下。

  1. 我有 id:= txtFromDate的服务器端文本框控件。视图状态已启用并且它是只读的。
  2. 第一次加载页面时,我在上面的文本框中设置当前日期值。
  3. 之后,我用 jQuery 更改文本框的值。
  4. 然后使用带有一些 __EVENTTARGET 参数的 jQuery 发回页面。
  5. 我在后面的代码中使用了这个更改的文本框值。

我在 1.1 框架的 32 位 windows XP 机器上开发了代码。但现在我已将整个站点放在 .NET 2.0 应用程序池中的 Windows Server 2008 R2 版(64 位)上

问题:它在开发机器上运行良好。但在 Windows Server 2008 中,jQuery 对文本框值的更改并未反映在后面的代码中。它保留了我在第一次加载页面时分配的旧值。

我想在我的开发机器上运行这个应用程序。简而言之,我也想在 Windows Server 2008 机器上的代码隐藏中更改文本框的值。

谢谢。

4

5 回答 5

4

我没有使用txtFromDate.Text,而是使用了Request.Form[txtFromDate.ClientID]并且问题得到了解决。

于 2013-02-21T08:00:16.057 回答
1

服务器后面的代码无法访问您对客户端控件所做的更改,除非这些更改是对输入控件的值进行的。因此,您还可以使用 hiddenfield 以及您想在 javascript/Jquery 中更改的标签,然后将新标签值存储在 hiddenfield 中,然后从隐藏字段中的标签中读取值,而不是从隐藏字段中读取值。

<asp:hiddenfied id="hdnLblValue" runat="server"/>
于 2015-12-28T17:45:32.667 回答
0

虽然你总是可以使用 set get 方法来存储来自 java 脚本的值......但这里有一些简单的方法来解决它......

案例 1 - 如果控件仅用于存储目的,请将 display : none 放在它的样式中,并在控件的属性中设置 visible = true 。

情况 2 - 如果要显示控件但在禁用模式下放置 ReadOnly="true" 而不是 Enabled = true

例如..

<asp:textbox runat="server" ID="textbox1" Enabled="false"></asp:textbox> will not work

<asp:textbox runat="server" ID="textbox2" ReadOnly="true"></asp:textbox> will work
于 2013-06-03T19:43:11.567 回答
0
clientIDMode="Static" 

将完美地工作。

于 2013-10-08T10:40:32.717 回答
0

需要牢记

  1. 如果有任何服务器控件示例:TextBox。从 Aspx 页面或代码后面被禁用或只读。

  2. 它的值正在从 JQuery 或 Javascipt 更改。

  3. 您尝试从后面的代码中获取此控件的更改值,那么您将永远无法获得它。

  4. 当您回发此控件时,服务器将验证该属性(如果已禁用或只读,则服务器将不会接受此控件的更改值。

  5. 您需要使用隐藏字段并使用此控件的更改值填充此隐藏字段。

    <asp:HiddenField runat="server" ID="hdnTextBoxValue"/>

您需要通过 JQuery 或 Javascript 将更改的值设置为隐藏字段并从 Code behind 中获取值。

于 2022-01-03T08:22:26.013 回答