|
发表于 2013-2-25 07:41:52
|
显示全部楼层
这个里面都是HttpContext.Current.Response.Write会导致页面变形,还是要用RegisterStartupScript或者RegisterClientScriptBlock吧,不过有个问题想问下,例如这样写函数(网上流行版本):
[code=csharp] #region 新版本
/// <summary>
/// 弹出JavaScript小窗口
/// </summary>
/// <param name="js">窗口信息</param>
public static void Alert(string message, Page page)
{
#region
string js = @"<Script language='JavaScript'>
alert('" + message + "');</Script>";
//HttpContext.Current.Response.Write(js);
if (!page.ClientScript.IsStartupScriptRegistered(page.GetType(), "alert"))
{
page.ClientScript.RegisterStartupScript(page.GetType(), "alert", js);
}
#endregion
}[/code]
这样的话我如果同一个页面想调用两次Alert就只能办出第一次的提示而已。。。
1、因为RegisterStartupScript和RegisterClientScriptBlock这两个函数都有key参数,上面的函数没有将key当成参数,所以同一page同一key会被认为是同一脚本。
2、如果在上面增加key作为参数,在调用的时候还得写个key参上去,感觉挺不爽的。
3、有种做法就是预定在页面放一个控件,将脚本输出到这个控件,但这个也需要配一个控件来运行脚本,感觉也不爽。最好调用的时候只写内容就弹框这样用起来感觉最适合了,最主要是弄好页面不变形和这个key导致的脚本重复。
请问,楼主有什么办法吗? |
|