0

单击按钮后,我有一些文本需要更改。该按钮触发 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 运行后标签会变得清晰的原因。有没有办法在后面的代码中读取带有填充值的标签?

4

2 回答 2

4

标签、跨度、div 等 HTML 控件不会将其值发布到服务器。但是输入控件保持视图状态的变化。

因此,您可以使用禁用的文本框而不是标签或使用更多隐藏字段并将相同的值分配给标签的该隐藏字段并从后面的代码中访问它。

谢谢。

于 2013-05-16T07:03:48.903 回答
1

标签不是客户端表单的元素,您可以使用隐藏字段(其客户端元素为输入类型=“隐藏”)或文本框(其客户端元素为输入类型=“文本”)来做到这一点,代码如下:

<asp:HiddenField ID="myHF" runat="server" />

<script>
    document.getElementById("<%=this.myHF.ClientID %>").value = siteAlias;
</script>

背后的代码:

string siteALias = this.myHF.Value;
于 2013-05-16T07:08:41.523 回答