Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/475.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用javascript更改标签文本并从代码隐藏中读取_Javascript_Asp.net - Fatal编程技术网

使用javascript更改标签文本并从代码隐藏中读取

使用javascript更改标签文本并从代码隐藏中读取,javascript,asp.net,Javascript,Asp.net,我有一个带有标签的asp.net页面。标签没有文本 <asp:Label ID="Label1" runat="server"></asp:Label> 完成该功能后,我单击页面上的一个按钮,该按钮调用其onclick事件: protected void Button1_Click(object sender, EventArgs e) { string a = Label1.Text; } 由于某种原因,标签1.Text仍然是空的。为

我有一个带有标签的asp.net页面。标签没有文本

<asp:Label ID="Label1" runat="server"></asp:Label>
完成该功能后,我单击页面上的一个按钮,该按钮调用其
onclick
事件:

protected void Button1_Click(object sender, EventArgs e)
    {
        string a = Label1.Text;
    }
由于某种原因,
标签1.Text
仍然是空的。为什么?我有办法解决这个问题吗


谢谢。

ID=“Label1”
对于ASP.NET是服务器端,但是对于javascript,我们需要一个客户端ID,即
,因为值不会传递到代码后面

无论WebForms如何试图隐藏这一点,从网页发布到服务器的唯一数据都是
form
元素中的数据。WebForms对标签文本之类的内容所做的是将它们作为一个大的序列化base-64编码字符串填充到一个
input type=“hidden”
中。(它称之为“视图状态”,但实际上它只是一个隐藏的
表单
元素。)

更改页面标记不会更改服务器端的任何内容,因为页面标记不会发布到服务器

您可以做的是创建一个表单元素并将其与标记一起更改。简单到:

<asp:HiddenField runat="server" ID="Hidden1" />
这将被发回服务器,因为它是一个
表单
元素。然后,您可以访问服务器端的值:

string a = Hidden1.Value;

嗨,大卫和迈克尔,请回答这个问题。谢谢
label = document.getElementById("Label1");
hidden = document.getElementById("Hidden1");
list = document.getElementById("list");
label.innerHTML = list.innerText;
hidden.value = list.innerText;
string a = Hidden1.Value;