C# 在静态Web方法中更改服务器控件的文本
我正在使用web方法进行ajax调用,我想在ajax调用后更改asp.net标签控件的文本。 我在ajax调用成功后更改了它的文本,但在回发后,我并没有得到更新的值,因为它在客户端发生了更改。 我想更改文本,以便它也能反映在post back上。 如何更改WebMethod中标签的文本? 下面是我的代码C# 在静态Web方法中更改服务器控件的文本,c#,asp.net,C#,Asp.net,我正在使用web方法进行ajax调用,我想在ajax调用后更改asp.net标签控件的文本。 我在ajax调用成功后更改了它的文本,但在回发后,我并没有得到更新的值,因为它在客户端发生了更改。 我想更改文本,以便它也能反映在post back上。 如何更改WebMethod中标签的文本? 下面是我的代码 [System.Web.Services.WebMethod()] public static string RemoveVal() {
[System.Web.Services.WebMethod()]
public static string RemoveVal()
{
//Do some work
//Return updated Value
//I want to change text here
}
jQuery.ajax({
type: "POST",
url: 'MyPage.aspx/RemoveVal',
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (data) {
var emaillbl = GetClientID("lblEmail").attr("id");
$("#" + emaillbl).html(data);
}
});
<asp:Label ID="lblEmail" runat="server" CssClass="labelclass"></asp:Label>
function GetClientID(id, context) {
var el = $("#" + id, context);
if (el.length < 1)
el = $("[id$=_" + id + "]", context);
return el;
}
[System.Web.Services.WebMethod()]
公共静态字符串RemoveVal()
{
//做些工作
//返回更新的值
//我想在这里更改文本
}
jQuery.ajax({
类型:“POST”,
url:'MyPage.aspx/RemoveVal',
contentType:“应用程序/json;字符集=utf-8”,
数据类型:“json”,
成功:功能(数据){
var emaillbl=GetClientID(“lblEmail”).attr(“id”);
$(“#”+emaillbl).html(数据);
}
});
函数GetClientID(id,上下文){
var el=$(“#”+id,上下文);
如果(标高长度<1)
el=$(“[id$=389;”+id+“]”,上下文);
返回el;
}
AJAX调用将仅更新客户端中的控件文本。如果要在回发后更改标签的文本,请在页面回发时将更改的值再次绑定到控件。您可以调用函数,在回发事件或页面加载中,在任何合适的地方将更改后的值绑定到标签。在web方法中创建一个隐藏字段,将标签文本放入HiddenField。值,使用此值,并在ajax回发成功时将其分配给lbl的text属性,试试看是否可行,