用javascript填充标签值.回发后代码中的标签为空

本文关键字:标签 代码 javascript 填充 | 更新日期: 2023-09-27 18:13:55

我有一些文本需要在单击按钮后更改。该按钮触发一个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运行后标签变得清晰的原因。是否有一种方法可以读取能够读取标签与后面的代码中填写的值?

用javascript填充标签值.回发后代码中的标签为空

标签、span、div等Html控件不会将它们的值发送给服务器。但是Input控件保持viewstate的变化。

所以,你可以使用禁用的文本框代替标签,或者使用另一个隐藏字段,并为标签的隐藏字段分配相同的值,并从后面的代码访问。

谢谢。

标签不是客户端表单的元素,您可以使用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;