关于在.net1.1中使用RegisterClientScriptBlock()注册脚本的显示顺序的BUG

症状

<script type=text/javascript>loadTOCNode(1, 'symptoms');</script>
当您使用 RegisterClientScriptBlock() 方法可添加更多然后八个客户端脚本块到页时,脚本块不会被添加您注册其顺序。 同样,使用 RegisterStartupScript() 向多然后八个客户端脚本块到页时, 脚本块不会被添加您注册其顺序。 如果客户端脚本的执行依赖于脚本块注册的顺序,然后在客户端脚本可能会不行为像您期望的那样。

注意 您可以保留注册顺序最多 16 个客户端脚本块。 为此,使用八 RegisterClientScriptBlock() 方法和 8 RegisterStartupScript() 方法。

回到顶端

原因

<script type=text/javascript>loadTOCNode(1, 'cause');</script>
已注册的脚本块位于 HybridDictionary 对象类。 如果有八个或更少的客户端脚本块,然后 HybridDictionary 实现与 ListDictionary 类集合中存储该项目。 当集合的大小增长到超过八个项目, HybridDirectory 切换到一个 哈希表 表。 ListDictionary 维护添加的项,顺序,以便按顺序检索项。 但是, 哈希表 不维护该集合中项的注册的顺序。 因此,注册的串行顺序不会发生在客户端脚本的插入。

回到顶端

解决方案

<script type=text/javascript>loadTOCNode(1, 'resolution');</script>
若要解决此问题,向 StringBuilder 方法,添加所有客户端脚本块,然后注册为一个脚本块在 StringBuilder
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值