alert导致js阻塞及 字符串转义

在后台调用alert时,导致js阻塞,前台的CollapsiblePanelExtender以默认方式展开。

fix bug:

使用setTimeout函数,在js运行完成后再调用alert,这样就不会造成阻塞。

后台调用alert如下:

    private void ShowAlert(string message)
    {
        ScriptManager.RegisterStartupScript(Page, typeof(PageEx),
                                                message.GetHashCode().ToString(),
                                                string.Format("setTimeout(function(){{alert('{0}')}}, 0);", Senia.BBKing.WebConstrols.Core.JavaScriptBuilder.ApplyEscapeSequences(message)),
                                                true);
    }


注意, string.Format函数中如果其字符串中出现了“{”字符,则“{”字符必须转义。

C# 中使用类似 {0}, {1:yyyy-MM-dd} 这样的格式占位符,如果被格式化字符串本身包含 { 或者 } 怎么办呢?答案是:用两个 { 或者 }连写表示单个。 

例如 
string str1 = String.Format("{{Hello}}, {0}, Now is {{{1:yyyy-MM-dd HH:mm:ss}}}"
    "Jinglecat"
    DateTime.Now); // {Hello}, Jinglecat, Now is {2007-07-18 23:06:35} 

事实上,很多情况下带特殊含义的字符都是这样转义的:如, 
C#  中,当字符串常量带 @  前导的时候,用两个 " 连写表示一个 " (半角双引号) 
string str3 = @"My UserName is ""Jinglecat""."// My UserName is "Jinglecat".

SQL 字符串常量,用两个 ' 连写表示一个 ' (半角单引号) 
DECLARE @str6 varchar(100)
SET @str6 = 'My UserName is ''Jinglecat''.' 
PRINT @str6 -- My UserName is 'Jinglecat'.


参考资料:

http://www.cnblogs.com/linyechengwei/archive/2009/11/17/1604509.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值