2010-02-23 54 views
1

我开发了一个带有大量jqGrid的ASP.NET MVC(版本2 RC)应用程序。它在Firefox中像冠军一样工作,但我在IE8中发现了一个问题。Internet Explorer 8中的jqGrid问题

“主视图”网格可以通过搜索框或网格上方的几个下拉列表中的一个下拉框进行过滤。我使用JavaScript来重置网址为网格,然后触发重载,正是如此:

function filterByName(filter) { 
     if (filter == 'All') { 
      $('#list').setGridParam({ url: 'Application/GetApplications' }); 
      $('#list').trigger("reloadGrid"); 
     } 
     else { 
      $('#list').setGridParam({ url: 'Application/GetAppByName/' + filter + '/' }); 
      $('#list').trigger("reloadGrid"); 
     } 
    } 

这就像在Firefox的魔法,但我得到一个HTTP 400错误的请求我做这在IE8时。与Firebug的喷火器相比,IE8客户端调试器就像火石和火绒,所以我没有太多的运气来搞清楚它为什么会在IE8中崩溃。有没有人看过这个?

此外,这里的jqGrid“触发器”方法是吞咽AJAX异常。有没有办法让它泡起来,以便我可以查看异常详细信息?

UPDATE

的问题是,在我的 “的onchange” 事件的下拉列表中选择语法。我正在使用:

onchange="filterByMnemonic($('#drpMnemonic')[0].value); 

哪个Firefox显然不介意,但IE认为,nuthin'。然而,这工作在这两种浏览器:

onchange = "filterByMnemonic($('#drpMnemonic > option:selected').attr('value'));" 
+0

在IE中使用Fiddler。 'trigger' *不会*吞下400响应(这是*不是例外!)。但是如果你不处理它们(例如,使用'ajaxError'事件),你将永远不会看到它们。 – 2010-02-23 18:39:20

+1

另外:在一般情况下,jqGrid和'setGridParam' /'url'特别适用于IE8。我们广泛使用它。你的问题很可能是请求本身。提琴手将帮助这一点。 – 2010-02-23 18:40:56

+0

克雷格,你达人。详情请参阅更新。 – 2010-02-23 18:53:22

回答

0

UPDATE:

的问题是,在我的“的onchange”事件的下拉列表中选择语法。我正在使用:

onchange="filterByMnemonic($('#drpMnemonic')[0].value); 

哪个Firefox显然不介意,但IE认为,nuthin'。然而,这适用于两种浏览器:

onchange = "filterByMnemonic($('#drpMnemonic > option:selected').attr('value'));"