我正在尝试从服务器收到消息后从cs文件更改标签文本。 我尝试使用将标签放在updatepanel中,但无法使其正常工作。 如何更新标签的显示?
答案 0 :(得分:0)
通常这是
的内容myLabel.Text = "Value";
如果它在UpdatePanel中,则规则略有不同。我认为您需要获得控件,然后更新其值。有点像:
Label lbl = (Label) updatePanel1.FindControl("myLabel");
lbl.Text = "Value";
答案 1 :(得分:0)
如果您试图避免回发,那么您可以使用ASP.NET AJAX页面方法通过AJAX查询服务器,然后将返回的值推送到标签控件,如下所示:
标记:
<script type="text/javascript">
$(document).ready(function () {
$('.TheButton').click(function () {
$.ajax({
type: "POST",
url: "Default.aspx/GetDate",
data: "{}",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (data) {
$('.TheLabel').text(data.d);
}
});
return false;
});
});
</script>
<asp:Label ID="Label1" runat="server" Text="Nothing" CssClass="TheLabel" />
<br/>
<asp:Button runat="server" ID="Button1" CssClass="TheButton" Text="Update Label"/>
代码隐藏:
[WebMethod]
public static string GetDate()
{
return DateTime.Now.ToString();
}
注意:ASP.NET AJAX页面方法是static
方法,不属于ASP.NET页面生命周期。它们无法访问页面上的任何控件,但对于从服务器获取数据非常有用(在本例中为服务器时间)。为了简单起见,我在服务器控件上使用CSS类名来简化jQuery选择器。