2011-05-17 118 views
0

我的一些jqGrids在導航欄上有一個奇怪的行爲。
對其中一些我使用默認的搜索和刷新按鈕,並在那裏導航區浮動左側出現在這些按鈕旁邊(不應該居中,因爲它應該)。

當我向搜索按鈕「搜索」添加文本時會發生最大的問題。這使得按鈕邊距被錯誤地計算,使得hober效果邊界比實際的按鈕寬度更短。

但就像我說過的,這隻發生在某些情況下,我無法弄清楚正確工作和不正確工作之間的區別。這不是瀏覽器問題,因爲它在所有瀏覽器中都是一樣的。jqgrid導航欄不能正確呈現

繼承人是截圖(注意與重點搜索按鈕和導航控件的位置!): Problem Screenshot

有任何人之前遇到過這個問題嗎?
這是我的配置的操作系統有這個問題的一個網格:

$('#ProductBrandListGrid').jqGrid({ 
     url: '<%= ResolveUrl("~/Controls/ProductsControls/Controllers/ProductBrandController.ashx?method=GridDataList") %>', 
     datatype: 'json', 
     mtype: 'GET', 
     colNames: ['Name', 'Description', 'Actions'], 
     colModel: [ 
    { name: 'Name', index: 'Name', width: 100, align: 'left', resizable: true, sortable: true, searchoptions: { sopt: ['cn']} }, 
    { name: 'Description', index: 'Description', align: 'left', resizable: true, sortable: true, searchoptions: { sopt: ['cn']} }, 
    { name: 'act', index: 'act', width: 25, sortable: false, search: false }, 
    ], 
     pager: $('#ProductBrandListGridPager'), 
     rowNum: 15, 
     rowList: [10, 15, 20, 30, 50, 100], 
     sortname: 'Name', 
     sortorder: 'asc', 
     viewrecords: true, 
     imgpath: '', 
     caption: '', 
     width: 200, 
     height: 400, 
     gridComplete: function() { 
      var ids = jQuery("#ProductBrandListGrid").jqGrid('getDataIDs'); 
      for (var i = 0; i < ids.length; i++) { 
       var cl = ids[i]; 

       ce2 = "<input type='button' value='details' onclick='ProductBrandItemOpen(\"" + cl + "\")' />"; 

       $("#ProductBrandListGrid").setRowData(ids[i], { act: ce2 }); 
      } 
     } 
    }); 

    /* Add this line to show search boxes on the header */ 
    $('#ProductBrandListGrid').jqGrid('filterToolbar', { stringResult: true, searchOnEnter: false }); 

    /* Add this line to allow advanced search using the toolbar button */ 
    $("#ProductBrandListGrid").jqGrid('navGrid', "#ProductBrandListGridPager", { search: true, edit: false, add: false, del: false, searchtext:"Search" }); 

謝謝, 亞歷克斯

+0

按鈕可能是用一個固定的寬度同樣的成功。右鍵單擊它和「檢查元素」,並查看該CSS是否爲固定寬度 – ariel 2011-05-17 07:24:11

+0

您提到的所有內容都是css [presentation]問題,與您的jqGrid – Val 2011-05-17 09:57:36

+0

沒什麼關係哦,爲什麼您要使用''?屬性?它的不好的做法,你是擊敗jquerys使命lool :) – Val 2011-05-17 09:58:54

回答

0

基於什麼奧列格談到網格的初始寬度我就做一些測試。

正如我所說,我有其他網格在工具欄上有自定義按鈕,並不像這樣的行爲,但我找不到任何可能導致此問題的差異。

檢查我的其他實現我看到這隻發生在較低的初始寬度。如果我將初始寬度設置爲500,它將正確居中,並在setGridWidth上正確重新定位它自己。 我甚至可以告訴幻數爲415. 415px的初始寬度將導致...任何等於或大於415px的東西將使jqGrid按預期行事。這使我認爲這是某種硬編碼的最小寬度導致這種竊聽行爲。

感謝您的幫助奧列格。 亞歷克斯

+0

剛纔閱讀你的答案。不用謝! – Oleg 2011-05-30 08:47:36

1

我今天遇到這個問題,並通過'檢查元素'注意到,由於某種原因,我還沒有弄清楚。這甚至發生在寬度大於415時,以及在底部尋呼機上沒有自定義按鈕的網格。到目前爲止,它似乎是非常隨機的。發生此問題時,id ='xxxpagername_left'的td標記具有特定的寬度。在沒有此問題的網格上,'xxxpagername_left'的寬度未設置。所以,快速解決問題:

var pagerName = $($grid).jqGrid('getGridParam', 'pager'); 
$(pagerName + '_left').css('width', 'auto'); 

我有一個ResizeGrid方法,在每個網格的默認loadComplete事件觸發;在網格被調整大小後,代碼片斷會被擊中。

不幸的是,我沒能與設置寬度爲500,或任何大於415

+0

我其實從來沒有解決過這個問題,我只是黑了。這個項目已經消失了,但奇怪的是,這個問題在3年後依然存在...... – AlexCode 2014-06-12 11:55:02

+0

是的,這很奇怪,並且不容易複製。我想我會爲下一個人添加另一個「解決方案」。 – fafafooey 2014-06-12 15:38:50

+0

這對我來說也是如此,是否還有其他解決方案,當寬度設置爲空時仍然遇到此問題。我需要寬度:null和shrinkToFit:false用於調整大小,改變寬度有助於但我無法正確調整大小,怪異的問題。 – Mindless 2014-08-03 14:37:21