在atlas的时候,在UpdatePanel中使用Menu控件是不会出错的,但是正式命名为asp.net ajax后,从beta1开始,在UpdatePanel 中就无法正常使用Menu控件了,一直到RTM也没有解决这个问题。
目前只遇到Menu无法使用,先来回放一下在UpdatePanel中使用Menu控件会出现什么样的脚本错误呢?
我是用Menu和MultiView来实现Tab控件的效果,但是在UpdatePanel中,首次转换选项页不会出错,但当我再次将鼠标移到选项按钮时就会出现:
'0.cells'为空或不是对象 的脚本错误提示。跟踪调试错误脚本
Menu_HideItems函数内部出错了。可以根据脚本资源地址下载到脚本文件,得到Menu_HideItems原型定义。然后利javascript的却态特性,我们可以重写这个方法,来屏蔽这个错误。
在出错页面写上面js代码即可解决
var oldMenu_HideItems = Menu_HideItems;
if(oldMenu_HideItems)
{
Menu_HideItems = function(items){
if (!items || ((typeof(items.tagName) == "undefined") && (items instanceof Event))) { items = __rootMenuItem; }
if(items && items.rows && items.rows.length == 0){ items.insertRow(0); }
return oldMenu_HideItems(items);
}
}