我正在尝试将值从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值分配给隐藏控件,有什么想法吗?
答案 0 :(得分:0)
你所缺少的只是一个回发。在能够将新插入的值读入HiddenField1之前,您需要回发页面。 javascript是在Page_Load之后将值添加到HiddenField1。
答案 1 :(得分:0)
你想做什么?从它看起来,你试图读出你通过Javascript(在客户端)设置的值,但你从来没有真正将数据返回到服务器。
如果没有PostBack,你将无法读取它,因为javascript不会在服务器端执行。
添加一个按钮,进行回发,然后查看是否可以读出数据。