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

时间:2012-03-06 18:01:42

标签: c# javascript asp.net

我正在尝试将值从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值分配给隐藏控件,有什么想法吗?

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

你想做什么?从它看起来,你试图读出你通过Javascript(在客户端)设置的值,但你从来没有真正将数据返回到服务器。

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

添加一个按钮,进行回发,然后查看是否可以读出数据。