1

我正在尝试在 ASP.Net Microsoft AJAX 回发后执行 JQuery。

当用户单击链接时,Microsoft AJAX 用于更新数据库中的某些字段,如果成功,则会出现一个标签,通知用户已进行更改。不幸的是,标签不是很明显,我想用它来将背景从红色淡化为白色。

问题是当在标签上设置 visible=false 时,生成的 html 不包含标签(跨度)。有谁知道在 ASP.Net Microsoft AJAX 回发后如何执行 JQuery,或者其他解决方案来实现相同的效果?

4

4 回答 4

2

这是在 ASP.NET Ajax 回发后执行随机 javascript 的方法

function executeThis(){
//code here to fade in out the label that comes


var prm = Sys.WebForms.PageRequestManager.getInstance();
prm.remove_pageLoaded(executeThis); //job done, remove this so that it is not fired again.
}


$("link").click(function(){
                var prm = Sys.WebForms.PageRequestManager.getInstance();
                prm.add_pageLoaded(executeThis); //this will register executeThis function with MS Ajax libraries which will fire it after next posback
               //the post back happens here.
  });
于 2011-06-06T16:11:04.227 回答
2

你可以在回发中试试这个

ScriptManager.RegisterStartupScript(Me.Form, Me.GetType(), "FunctionName", "FunctionName();", True)

这将在回发完成后调用 javascript 函数 FunctionName()

于 2011-06-06T16:27:20.167 回答
2

有点像@Nikhil 所说的,非常相似的东西和我一直使用的东西:

Sys.WebForms.PageRequestManager.getInstance().add_endRequest(functionName)

functionName包含您想要调用的任何内容的函数的名称在哪里。这确保了每当重新加载/刷新页面/面板时都会调用该函数。

于 2011-06-06T16:30:51.267 回答
0

这里有一些伪代码可以帮助您:

  1. 如果没有成功,保持 asp:Label 可见属性 = true 但给它一个 CSS 类,显示设置为 none
  2. 在页面加载时,执行以下操作:

    ScriptManager.RegisterStartupScript(Me.Form, Me.GetType(), "ShowError", "ShowError();", True);

  3. 在您的 Javascript 中,添加以下内容:

    函数 ShowError() { $('#myLabelID').show().fadeOut(); }

于 2011-06-06T16:43:49.643 回答