2011-07-05 57 views
3

我有一個jqGrid調用一個控制器動作(將JSON返回給jqGrid)。 當我的網格被填充,一切,但「表體」被禁用,因爲如果表體是通過一些模態窗口中顯示: example http://i53.tinypic.com/zimxk5.pngjqGrid禁用了我的頁面的其餘部分?

這是我的js代碼初始化網格,和HTML:

<head> 
    <title>Insert</title> 
    <link href="/Content/Site.css" rel="stylesheet" type="text/css" /> 
    <script src="http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.5.1.min.js" type="text/javascript"></script> 
    <script src="http://ajax.aspnetcdn.com/ajax/jquery.validate/1.8.1/jquery.validate.min.js" type="text/javascript"></script> 
    <script src="http://ajax.aspnetcdn.com/ajax/mvc/3.0/jquery.validate.unobtrusive.min.js" type="text/javascript"></script> 
    <script src="http://ajax.aspnetcdn.com/ajax/jquery.ui/1.8.14/jquery-ui.min.js" type="text/javascript"></script> 
    <link type="text/css" rel="Stylesheet" href="http://ajax.aspnetcdn.com/ajax/jquery.ui/1.8.10/themes/ui-lightness/jquery-ui.css" />  
    <script src="/Scripts/EditorHookup.js" type="text/javascript"></script>  
    <script src="../../Scripts/grid.locale-en.js" type="text/javascript"></script> 
    <script src="../../Scripts/jquery.jqGrid.min.js" type="text/javascript"></script> 

    <script type="text/javascript"> 
     var gridimgpath = '/content/themes/base/images'; 
     var gridDataUrl = '/Home/JsonPosloviForDate'; 
     var jsonDate = "\/Date(1309816800000)\/";  
     var date = eval(jsonDate.replace(/\/Date\((\d+)\)\//gi, "new Date($1)"));  
     $(function() { 
     jQuery("#list").jqGrid({ 
      url: gridDataUrl + '?currDate=' + date.toJSON(), 
      datatype: "json", 
      mtype: 'GET', 
      colNames: ['Šifra posla', 'Vrsta posla', 'Partner', 'Opis', 'Broj sati'], 
      colModel: [ 
       { name: 'SifPosao', index: 'SifPosao', width: 50, align: 'left' }, 
       { name: 'kratVrstaPosao', index: 'kratVrstaPosao', width: 100, align: 'left' }, 
       { name: 'nazPartner', index: 'nazPartner', width: 100, align: 'left' }, 
       { name: 'opis', index: 'opis', width: 100, align: 'left' }, 
       { name: 'brSati', index: 'brSati', width: 100, align: 'left' }, 
        ], 
      rowNum: 20, 
      rowList: [10, 20, 30], 
      imgpath: gridimgpath, 
      height: 'auto', 
      width: '700', 
      pager: jQuery('#pager'), 
      sortname: 'SifPosao', 
      viewrecords: true, 
      sortorder: "desc", 
      caption: "Poslovi" 
     }); 
     }); 
    </script> 

</head> 
<body> 
...  
<table id="list" class="scroll" cellpadding="0" cellspacing="0"></table> 
<div id="pager" class="scroll" style="text-align:center;"></div> 
... 
</body> 

回答

5

有jqGrid的loadui參數,它允許您管理網格將如何被阻塞。您可以嘗試使用loadui:'disable'來驗證它是您擁有的問題。

然而,你描述的行爲似乎很奇怪。 jqGrid使用<div>作爲覆蓋,並且div具有名爲'loading'的附加類。您應該驗證您的CSS是否存在名稱衝突,並使用相同的類名作爲其他用途。

順便說一下,我建議您查看您使用的jqGrid參數和HTML標記。

  • 參數imgpath將從jqGrid的版本3.5(請參閱here)開始不會使用。你真的使用復古版的jqGrid嗎?如果不是,你應該刪除imgpath
  • 您應該colModel因爲align默認值已經「左」刪除屬性align: 'left'(見here
  • 你應該從<div id="pager"><table id="list">class="scroll" style="text-align:center;"刪除class="scroll" cellpadding="0" cellspacing="0"。在jqGrid的「復古」版本中需要設置,但現在不需要(請參閱here HTML示例)。使用pager: '#pager'代替pager: jQuery('#pager')
  • 而不是構建最好使用兩個參數:url: gridDataUrlpostData: {currDate: date.toJSON()}或事件更好postData: {currDate: function() { return date.toJSON(); } }。如果使用postData內部的功能,則在每個電網負載/刷新(有關更多信息,請參見here)時,都會評估該屬性的值。如果您確實想要像yoou那樣手動構建url,那麼您目前是否需要使用encodeURIComponentjQuery.paramurl: gridDataUrl + '?currDate=' + encodeURIComponent(date.toJSON())url: gridDataUrl + '?' + jQuery.param({currDate:date.toJSON()})
  • 你不應該使用eval

UPDATED:我沒有在您發送jqGrid CSS的示例中找到。如果我用以下行替換所有CSS和JavaScript文件的塊

<link rel="stylesheet" type="text/css" href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.14/themes/ui-lightness/jquery-ui.css" /> 
<link rel="stylesheet" type="text/css" href="http://www.ok-soft-gmbh.com/jqGrid/jquery.jqGrid-4.1.1/css/ui.jqgrid.css" /> 
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js"></script> 
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.14/jquery-ui.min.js"></script> 
<script type="text/javascript" src="http://www.ok-soft-gmbh.com/jqGrid/jquery.jqGrid-4.1.1/js/i18n/grid.locale-en.js"></script> 
<script type="text/javascript" src="http://www.ok-soft-gmbh.com/jqGrid/jquery.jqGrid-4.1.1/js/jquery.jqGrid.min.js"></script> 

所述問題不存在。

+0

首先,感謝你的全面的答案。不幸的是,我沒有運氣。 我已經做了你所說的一切。 更改了我的HTML標識,刪除了所有其他CSS,仍然一樣。 我已經嘗試過使用loadui,但它似乎沒有任何區別。 行爲是IE9,FF和Chrome :(相同。 雖然,有時尋呼機被激活了,當我移動到下一個頁面,它禁用,一切都被「鎖定」,然後。 螢火顯示沒有錯誤,沒有錯誤在控制檯,GET請求返回適當的JSON(確實得到呈現) – igorludi

+0

@ user819023:如果你有頁面在線,並張貼我的網址,我可以看看它,並試圖找到原因。即使你使用'loadui:'disable'',初始加載網格數據的時候,應該不會來自jqGrid。你在同一頁面上使用了哪些插件? – Oleg

+0

我剛剛部署它到:http://161.53 .18.3:81/temp (我已將Site.css更改爲Site123.css(不存在)) – igorludi

4

我有同樣的問題,並添加

<link rel="stylesheet" type="text/css" href="http://www.trirand.net/aspnetmvc/Content/themes/ui.jqgrid.css" />  

現在工作

相關問題