如何在类文件中使用ScriptManager

本文关键字:ScriptManager 文件 | 更新日期: 2023-09-27 18:04:49

我有一个常用的方法,使用page.clientScript显示警报消息。但后来我增加了更新面板。现在这段代码不起作用了。所以我需要调用那里的scriptmanager,但我得到一些错误消息,它是可访问的。下面是common.cs文件

的ShowMessage方法
 private static void ShowMessage(Page currentPage, string message)
        {
            var sb = new StringBuilder();
            sb.Append("alert('");
            sb.Append(message);
            sb.Append("');");
            currentPage.ClientScript.RegisterClientScriptBlock(typeof(Common), "showalert", sb.ToString(), true);
        }
那么如何在更新面板

如何在类文件中使用ScriptManager

下使用这个方法呢?

使用:ScriptManager。RegisterClientScriptBlock Method

ScriptManager.RegisterClientScriptBlock(
            this,
            typeof(Page),
            "TScript",
            script,
            true);
const string scriptString = "<script type='text/javascript'> alert('message');</script>";
                ClientScriptManager script = Page.ClientScript;
                script.RegisterClientScriptBlock(GetType(), "randomName", scriptString);

用于类文件:

public static void SendAlert(string sMessage)
{
    sMessage = "alert('" + sMessage.Replace("'", @"''").Replace("'n", @"'n") + "');";
    if (HttpContext.Current.CurrentHandler is Page)
    {
        Page p = (Page)HttpContext.Current.CurrentHandler;
        if (ScriptManager.GetCurrent(p) != null)
        {
            ScriptManager.RegisterStartupScript(p, typeof(Page), "Message", sMessage, true);
        }
        else
        {
            p.ClientScript.RegisterStartupScript(typeof(Page), "Message", sMessage, true);
        }
    }
}

可以扩展以包含其他可能的处理程序,但目前我就是这样解决这个问题的。

在.cs文件中试试

var page = HttpContext.Current.CurrentHandler as Page;
ScriptManager.RegisterStartupScript(page, page.GetType(), "alert", "alert('Success');window.location ='Home.aspx';", true);

它对我有用^^

我是这样做的:

public partial class JQuery
{
    private Page page;      
    public JQuery(Page pagina) {
        page = pagina;
    }
    public void Alert(string Title, string Message)
    {
        Message = Message.Replace("'n", "<br>");
        string command = String.Format("myCustomDialog('{0}','{1}')", Title, Message);
        ScriptManager.RegisterClientScriptBlock(page, this.GetType(), "", command, true);
    }
}

然后你可以这样写:

JQuery jquery = new JQuery(this.Page);
jQuery.Alert("Title", "Look, a jQuery dialog!");