gpt4 book ai didi

c# - Page_Load 问题

转载 作者:太空宇宙 更新时间:2023-11-03 19:33:42 25 4
gpt4 key购买 nike

我有这个 javascript 模态,我想用它来报告错误。只有在页面加载之前执行代码,一切才能正常运行。所以结果是我在 head 标记之前有我的 javascript,这意味着什么都没有执行!

有什么帮助吗?

public void showError(string error)
{
string script = "<script type=\"text/javascript\">$.facebox.settings.opacity = 0.4;jQuery.facebox(\""+error+"\");</script>";
System.Web.HttpContext.Current.Response.Write(script);
}

顺便说一句,我的 ShowError 方法在一个名为 ErrorDisplay 的类中我是这样调用它的:

string strErr = "error here";
ErrorDisplay myError = new ErrorDisplay();
myError.ShowError(strErr);

最佳答案

基本问题是您需要让您的 Javascript 在执行之前等待 DOM 准备就绪。

解决此问题的最简单方法是使用 ClientScriptManager.RegisterStartupScript执行代码而不是直接将其添加到页面的方法:

public void Page_Load(Object sender, EventArgs e)
{
Type myType = this.GetType();
string script = "<script>alert('Hello World! I am ready.');</script>";

Page.ClientScript.RegisterStartupScript(myType, "StartupScript", script);
}

更新

我的例子是基于这样一个事实,即您最初的问题是专门针对 Page_Load 的。代码只需要稍微修改以适合您的示例:

public void ShowError(string error)
{
StringBuilder sb = new StringBuilder();
s.Append("<script type='text/javascript'>");
s.Append("$.facebox.settings.opacity = 0.4;");
s.AppendFormat("$.facebox('{0}');", error);
s.Append("</script>");

Type t = this.GetType();
Page.ClientScript.RegisterStartupScript(t, "ErrorScript", sb.ToString());
}

关于c# - Page_Load 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3343474/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com