2012-01-05 9 views
0

jqgridを使用しています.jqgridをクリックすると、同じページにフォームが開きます。 私はASP.Netユーザー認証も使用しています。asp.netでjqgridを使用したフォーム認証

問題は、私がグリッドの行をクリックしてセッションが期限切れになっているということです。ログインページに移動するのではなく、同じフォームでログインページを開きます。

この点についてお手伝いできますか?ここで

は私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

私はあなたがチェックできる想像します戻りコード301のHTTP応答(リダイレクト)。何かのように

if (response.status == 301) 
{ 
    document.location = "login.aspx"; 
    return; 
} 
load jqgrid normally. 
関連する問題