我已经测试了很多。代码在FIREFOX 5中正常工作,但相同的代码在IE9中不起作用。
下面是完全没有在IE9中使用DROPDOWN和GRID的代码。当我清除IE缓存和刷新页面比网格 充满了新的价值观。我看到AJAX调用很好。
问题IE9:
下拉补充码不能在IE9中使用。用于重新填充下拉列表的JQuery函数在JS文件中。
var ReloadMenu = (function () {
$.getJSON("/HeaderMenu/GetHeaderMenu", function (data) {
$('#headermenuDd >option').remove();
$("#headermenuDd").prepend("<option value='' selected='selected'></option>");
var text = $.trim($("#dropdowntext").val());
var options = $("#headermenuDd");
$.each(data, function () {
if (text == this.Id)
options.append($("<option class=\"green\"></option>").val(this.Id).text(this.DisplayName));
else
options.append($("<option></option>").val(this.Id).text(this.DisplayName));
});
});
});
网格补充代码在IE9中不起作用。用于重新填充网格的JQuery函数在JS文件中。
var ReloadGrid = (function () {
$.getJSON("/HeaderMenu/GetHeaderGrid", function (data) {
$('table.gridTable > tbody').empty();
(data.length <= 0) ? $("#gridBtn").hide() : $("#gridBtn").show();
for (var i = 0; i < data.length; i++) { data[i].num = i + 1; }
$('#gridTemplate').tmpl(data).appendTo('table.gridTable > tbody');
});
});
代码在csxhtml mvc3文件中用于制作GRID。
<script id="gridTemplate" type="text/x-jquery-tmpl">
<tr class="gridRow">
<td class="cellTd ">
<input type="checkbox" id="deleteCb" />
<input type="hidden" id="Id_ + ${num}" class="idField" value="${Id}" />
</td>
<td class="cellTd">
<input id="index" name="index" class="numberField" type="text" value="${IndexOrder}" />
</td>
<td class="cellTd">${DisplayName}</td>
<td class="cellTd ">${UrlName}</td>
<td class="cellTd ">
<input type="checkbox" id="activeCb" {{if Active}} checked{{/if}} />
</td>
</tr>
</script>
<table class="gridTable" cellspacing="0" cellpadding="0">
<thead>
<tr class="gridTitleRow">
<td class="iconLink width36">Delete</td>
<td class="iconLink width60">Sort Order</td>
<td class="iconLink widthAuto">Display Name</td>
<td class="iconLink widthAuto">Url Name</td>
<td class="iconLink widthAuto">Active</td>
</tr>
</thead>
<tbody>
</tbody>
</table>
答案 0 :(得分:3)
某些浏览器可以缓存GET请求。尝试禁用缓存而不是$.getJSON
使用$.ajax
并设置cache: false
参数:
$.ajax({
url: '/HeaderMenu/GetHeaderGrid', // TODO: never hardcode urls like this use Url helpers
type: 'GET',
cache: false,
success: function(data) {
// same as before
}
});
答案 1 :(得分:1)
你可以用这个:
$.ajax({
url: '/HeaderMenu/GetHeaderGrid', // TODO: never hardcode urls like this use Url helpers
type: 'GET',
cache: false,
success: function(data) {
// same as before
}
});