page.ClientScript.RegisterStartupScrip();

ASP web程序,我想实现点击按钮弹出提示框,写了个函数
public static void Show(System.Web.UI.Page page, string msg)
{
page.ClientScript.RegisterStartupScript(page.GetType(), "message", "<script language='javascript' defer>alert('" + msg.ToString() + "');</script>");
}
在第一个按钮点击后 Show(this, "编号不能为空!");
可以实现,第二个按钮 再调用这个就死活不弹出,为什么?
补充:这是ASP C#web程序,不会有JS,只有CS

检查一下生成的HTML中的js是什么样子

。。。。当然会有js了,page.ClientScript.RegisterStartupScript就是向页面里注册js脚本块啊,检查一下看看,我估计问题出在RegisterStartupScript上。。。。

顺便给你看看我写的JS提示好了........

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Web.UI;

namespace Zzjs.Base.BaseClasses
{
public static class ClientFunction
{
/// <summary>
/// 注册一个启动脚本块到指定页面上,JS实体无需使用script标签包裹
/// </summary>
/// <param name="iPage">页面实例</param>
/// <param name="jsKey">要注册JS脚本的Key</param>
/// <param name="jssrc">要注册JS脚本的实体</param>
/// <param name="iUpdatePanelID">UpdatePanel的ID(如果有)或null</param>
public static void RegisterStartupScript(Control sender, string jsKey, string jssrc)
{
if (sender == null)
{
throw new ArgumentNullException(typeof(ClientFunction).ToString(), "错误,Sender控件为空引用");
}
bool HasUpdatePanel = false;
Control c = sender.Parent;
while (c != null)
{
if (c is UpdatePanel)
{
HasUpdatePanel = true;
break;
}
else
{
c = c.Parent;
}

}

if (!HasUpdatePanel)
{
sender.Page.ClientScript.RegisterStartupScript(sender.Page.GetType(), jsKey, jssrc, true);
}
else
{
ScriptManager.RegisterStartupScript(c as UpdatePanel, sender.GetType(), jsKey, jssrc, true);
}
}

#region Js Alert
/// <summary>
/// 在当前页面上使用js alert弹出信息
/// </summary>
/// <param name="Message">要弹出的信息</param>
/// <param name="iPage">当前页面的实例</param>
/// <param name="iUpdatePanelID">UpdatePanel的ID(如果有)或null</param>
public static void OutputJSAlert(Control sender, string message)
{
OutputJSAlert(sender, message, false, null);
}

/// <summary>
/// 在当前页面上使用js alert弹出信息并重载当前页面
/// </summary>
/// <param name="Message">要弹出的信息</param>
/// <param name="iPage">当前页面的实例</param>
/// <param name="iUpdatePanelID">UpdatePanel的ID(如果有)或null</param>
/// <param name="IsReload">是否重载当前页面</param>
public static void OutputJSAlert(Control sender, string message, bool isReload)
{
OutputJSAlert(sender, message, isReload, null);
}

/// <summary>
/// 在当前页面上使用js alert弹出信息并重载指定页面
/// </summary>
/// <param name="Message">要弹出的信息</param>
/// <param name="iPage">当前页面的实例</param>
/// <param name="iUpdatePanelID">UpdatePanel的ID(如果有)或null</param>
/// <param name="IsReload">是否重载当前页面</param>
/// <param name="ReloadURL">需要重载的地址(为null时使用当前页面的地址)</param>
public static void OutputJSAlert(Control sender, string message, bool isReload, Uri reloadUrl)
{
if (sender == null)
{
throw new ArgumentNullException(typeof(ClientFunction).ToString(), "错误,Sender控件为空引用");
}
string jssrc = "alert('" + message + "');";
if (isReload)
{
if (reloadUrl == null || string.IsNullOrEmpty(reloadUrl.AbsoluteUri))
{
reloadUrl = sender.Page.Request.Url;
}
jssrc += ("window.location.assign('" + reloadUrl.AbsoluteUri + "');");
}
RegisterStartupScript(sender, "JSAlert", jssrc);
}
#endregion

/// <summary>
/// 不输出提示直接重载指定页面
/// </summary>
/// <param name="sender">sender</param>
/// <param name="reloadUrl">重载的Uri</param>
public static void AssignPage(Control sender, string path)
{
RegisterStartupScript(sender, "AssignPage", "window.location.assign('" + path + "');");
}
}
}
温馨提示:答案为网友推荐,仅供参考