0

我在客户端有一个标签。它的值由 javascript 更新。现在我想在服务器端访问这个更新的值。但是,由于该值是在客户端计算的,因此我没有在服务器端获得此更新值。我可以使用隐藏字段获得这个更新的值。但是除了使用隐藏字段之外,还有什么不同的方法可以访问标签值......?

if (isNaN(tot)) {
    document.getElementById('lbltotIntk').value = "0";
} else { 
    document.getElementById('lbltotIntk').innerText = tot.toFixed(2);   
    document.getElementById('<%=hdnIntTot.ClientID %>').value = tot.toFixed(2); 
}

当我使用: lbltotIntk.text 我没有得到任何更新的值。你可以在这里看到我在这里使用了隐藏字段。但我不想使用它。有没有其他方法可以访问标签值..?

4

2 回答 2

3

标签控件是只读控件...如果执行回发,您不能从客户端覆盖它并保持其值。

所以最好的解决方案是添加一个隐藏字段并设置值,然后从服务器端访问它。

隐藏字段是很好的解决方案,但如果在这种情况下网页中有 30 个标签,则 30 个隐藏字段是开销。另一种选择是在文本框上使用 css

   .textBox
   {
   background-color:Transparent;
   border: none;
   }

并将文本框的属性 ReadOnly 设置为 true。现在文本框看起来像标签..

于 2012-12-31T06:11:25.473 回答
0

不,如果您在客户端更改某些内容,您将不会在服务器端获得更新的值。

因为在服务器端,值是从中获取的,ViewState但是当我们在客户端更改某些内容时,ViewState不会相应地更改。所以我们得到旧值。这就是使用隐藏字段的原因。这个问题不仅出现在标签上,其他服务器控件也会出现这个问题。

于 2012-12-31T06:09:58.713 回答