我正在使用jqgrid,点击jqgrid后,它会在同一页面上打开表单。 我也在使用ASP.Net用户身份验证。
问题是,当我点击网格行并且会话过期时。它以相同的形式打开登录页面,而不是转移到登录页面。
在这方面,任何人都可以帮助我吗?
这是我的jqgrid代码:
$(document).ready(function () {
$(':checkbox').click(function () {
var value = $("#cb").is(":checked");
$("#document-grid").jqGrid('setGridParam', { datatype: function (postdata) {
$.ajax({
type: "POST",
url: "/Calls/Documents.aspx/Find?showarchive=" + value,
data: JSON.stringify($.extend({ 'filters': '' }, postdata)),
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (res) {
$("#document-grid")[0].addJSONData(res.d);
}
});
}
}).trigger("reloadGrid", [{ current: true}]);
});
$("#document-grid").generalGrid({
url: '/Calls/Documents.aspx/Find',
jqGridOptions: {
pager: '#document-grid-pager',
colNames: ['Titel', 'Uploaddatum', 'Omschrijving', 'Bestandsnaam'], //, 'Type' ],
colModel: [
{ name: 'Titel', index: 'Title' },
{ name: 'Uploaddatum', index: 'Uploaddatum', sorttype: 'date', searchoptions: {
dataInit: function (elem) {
$(elem).datepicker({
onSelect: function(dateText, inst){ $("#document-grid")[0].triggerToolbar(); }
});
},
}
},
{ name: 'Beschrijving', index: 'Description' },
{ name: 'Bestandsnaam', index: 'Filename' }
// { name: 'Type', index: 'Type' }
],
sortname: 'UploadDate',
caption: '',
onSelectRow: function (Id) {
alert(Id);
$("#document-form").box('destroy').ajaxFormPanel('destroy').ajaxFormPanel({ url: '/Forms/Document.aspx?Id=' + Id,
loaded: function (s) {
$("#txtUploadDate, #txtExpirationDate", s.element).datepicker();
$(s.element).box({ title: 'Document bewerken' });
},
postback: function (s) {
$("#document-grid").trigger("reloadGrid", [{ current: true}]);
// $("#document-form").ajaxFormPanel('destroy').ajaxFormPanel({ url: '/Forms/Document.aspx?Edited=true&Id=' + Id }).ajaxFormPanel('open');
}
}).ajaxFormPanel('open');
}
}
});
和我在Web.config中的用户身份验证代码是:
<authentication mode="Forms">
<forms loginUrl="Login.aspx"
protection="All"
timeout="1"
name=".ASPXFORMSAUTH"
path="/"
requireSSL="false"
slidingExpiration="true"
defaultUrl="Default.aspx"
cookieless="UseDeviceProfile"
domain=""
enableCrossAppRedirects="false" />
</authentication>
提前完成..
答案 0 :(得分:0)
我想你可以检查http响应的返回码为301(重定向)。
之类的东西if (response.status == 301)
{
document.location = "login.aspx";
return;
}
load jqgrid normally.