使用javascript更改标签文本并从代码隐藏中读取
我有一个带有标签的asp.net页面。标签没有文本使用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: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;