我有一些文字需要在点击按钮后更改。该按钮触发Javascript。此Javascript更改标签的值。当我在不同的地方检查标签的值时,它总是空的。 我在页面加载和预渲染中检查标签的值。
void Page_PreRender(object sender, EventArgs e)
{
string siteALias = lblSiteAliasDiscription.Text; //empty
}
protected void Page_Load(object sender, EventArgs e)
{
string siteALias = lblSiteAliasDiscription.Text; //empty
}
function setDiscription(siteAlias, discription) {
alert(siteAlias);
document.getElementById("ctl00_contentHolder_lblSiteAliasDiscription").InnerHTML = siteAlias;
alert(document.getElementById("ctl00_contentHolder_lblSiteAliasDiscription").InnerHTML);
}
两个警报都以正确的方式填充,这就是为什么我确定在Javascript运行后标签变得清晰。有没有办法读取能够读取后面代码中填充值的标签?
答案 0 :(得分:4)
标签,跨度,div等Html控件不会将其值发布到服务器。 但输入控件维持视图状态的更改。
因此,您可以使用已禁用的文本框而不是标签,或使用一个或多个隐藏字段,并将相同的值分配给该隐藏的标签字段,并从后面的代码中访问该字段。
感谢。
答案 1 :(得分:1)
标签不是客户端表单的元素,您可以使用hiddenfield(其客户端元素是input type =“hidden”)或textbox(其客户端元素是input type =“text”)来执行它,代码如下:
<asp:HiddenField ID="myHF" runat="server" />
<script>
document.getElementById("<%=this.myHF.ClientID %>").value = siteAlias;
</script>
背后的代码:
string siteALias = this.myHF.Value;