将值从JScript传递到ASP.NET控件

Passing value from JScript to ASP.NET Control

本文关键字:ASP NET 控件 JScript      更新时间:2023-09-26

我正试图将一个值从JScript函数传递给ASP.NET控件,但无法使其工作。我做错了什么:

aspx.cs

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="WebApplication5._Default" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
    <script type="text/javascript">
        function saveMyData() {
            var myData = "TestData";
            var hiddenInput = document.getElementById('<%=HiddenField1.ClientID %>');
            hiddenInput.Value = myData;
        }
    </script>
</head>
<body onload="javascript:saveMyData();">
    <form id="form1" runat="server">
        <div>
            <asp:HiddenField ID="HiddenField1" runat="server" />
            <br><input type="submit" value="Press Me!"><br> <--New Code
        </div>
    </form>
</body>
</html>

代码背后:

using System;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
namespace WebApplication5
{
    public partial class _Default : Page
    {
        protected HtmlInputHidden HiddenField;
        protected void Page_Load(object sender, System.EventArgs e)
        {
            string value = HiddenField1.Value;
        }
    }
}

**更新**

我添加了一个提交按钮,但我仍然无法将myData值分配给隐藏控件,有什么想法吗?

您所缺少的只是一个回发。在页面能够将新插入的值读取到HiddenField1之前,您需要将其发布回。javascript将值添加到Page_Load之后的HiddenField1中。

你想做什么?从外观上看,您试图读取通过Javascript(在客户端)设置的值,但实际上从未将数据返回到服务器。

如果没有PostBack,您将无法读取它,因为javascript不会在服务器端执行。

添加一个按钮,做一个Postback,然后看看你是否可以读出数据。