JuiceUI菜单打破ASP.NET回发与分页栏

时间:2013-02-26 17:23:37

标签: asp.net dopostback juice-ui

我有一个设置了JuiceUI菜单的ASP.NET 4.0网站。当页面默认出现时,事情看起来很好。在我的页面上有一个表格显示(在代码中使用GridView)和底部的分页,调用像

这样的PostBack
__doPostBack('ctl00$MainContent$GridView21','Page$3')

导致JuiceUI菜单中断。

Web开发人员控制台中的错误代码

未捕获的TypeError:无法读取null的属性'eval'

完整跟踪:

Uncaught TypeError: Cannot read property 'eval' of null juice.js:97
(anonymous function) juice.js:97
jQuery.extend.each jquery-1.8.2.js:605
(anonymous function) juice.js:96
jQuery.extend.each jquery-1.8.2.js:611
ready juice.js:55
fire jquery-1.8.2.js:974
self.fireWith jquery-1.8.2.js:1082
jQuery.extend.ready jquery-1.8.2.js:406
DOMContentLoaded

似乎与以下事实有关:首次加载页面时,会看到以下监视表达式:

widget.options: Object 
proto: Object 

单击分页#后,值将更改为:

widget.options: Object 
icons: Object 
menu: null 
position: Object 
proto: Object 

在doPostback上导致菜单在widget选项中为空的原因是什么?我可以做些什么来解决这个问题?

有人能否了解正在发生的事情以及可以采取哪些措施来解决这个问题?

谢谢

1 个答案:

答案 0 :(得分:1)

代码中有一个错误。

必须从以下位置更改juice.js文件:

        $.each( widget.options, function( prop ) {
            if( this.eval ){
                var on = this.on;

为:

        $.each( widget.options, function( prop ) {
            if( this && this.eval ){
                var on = this.on;

仅供参考,即使没有改变,这在IE中运行良好,但在Chrome和Firefox中被破坏了。包括'this'检查修复此问题。希望果汁开发人员看到这篇文章并进行更改或回复。