2010-05-21 87 views
1

我有一個jqGrid,它具有添加/編輯對話框的窗體比對話框高度更長,但對話框不會滾動。我試過的風格overflow: auto添加到對話,但沒有效果:jqgrid可滾動對話框

$("div.ui-jqdialog-content").css("overflow", "auto"); 

雖然,如果我改變autoscroll,我至少看到一個滾動條,但仍然沒有滾動:

$("div.ui-jqdialog-content").css("overflow", "scroll"); 

這至少給我帶來了一絲希望,希望我走在正確的軌道上。

似乎有不被從API文檔可以向任何方向支持滾動:

http://www.trirand.com/jqgridwiki/doku.php?id=wiki:form_editing

有誰知道如何工作的滾動條添加到由jqGrid的使用jqModal對話窗口?

UPDATE

這是一個總的黑客的工作,但我有一個滾動條出現和功能執行以下操作:

setTimeout(function() {$("#FrmGrid_list").html('<div style="height: 300px; overflow: auto;">' + $("#FrmGrid_list").html() + '</div>');}, 1000); 

我重視這個給afterShowForm事件。但是,這確實不能解決問題,因爲它會導致其他領域的其他問題。

+0

如果你不喜歡,爲什麼jqModal不要在你的例子顯示滾動條的原因,剛剛發佈的HTML代碼,顯示的JavaScript文件加載順序的代碼示例 – Oleg 2010-05-21 09:46:53

回答

3

我想我會分享我的解決方案,供他人蔘考。

form元素具有默認height: auto;樣式屬性,這會導致overflow: auto;不能按要求運行。爲了製作溢流滾動,需要將高度設置爲固定數量以約束容器form,因此需要使用overflow

我連着CSS更新到afterShowForm表單編輯的事件,使用下面的代碼:

afterShowForm: function(form) { form.css("height", "300px"); } 

你要知道,300像素,是我選擇測試的任意數量。這個數字將會調整以適應我的需求。它甚至可以在調整大小時動態調整。誰知道。

此外,使用Firebug,我發現我的表單ID是FrmGrid_list。我的網格ID是列表(例如,<table id="list"></table>jQuery("#list").jqGrid({...});)。如果你的網格被命名爲列表以外的其他東西,那麼表單id(上面)應該反映出來。

參考鏈接:

+1

只有很小的改進。 'afterShowForm'可以用一個參數'function(form)'聲明,'form'參數將被jqGrid初始化爲$(「#FrmGrid_list」)。所以代碼可能看起來像'form.css(「height」,「300px」);'。 – Oleg 2010-05-21 16:29:47

+0

不錯。這太漂亮了。我會將它添加到上面。 – gurun8 2010-05-21 18:06:34

1

你的問題聽起來很奇怪。每個編輯/添加對話框都有一個可滾動的form,裏面有名爲「FormPost」的名稱。這種形式有以下風格:

position: relative; width: 100%; height: auto; overflow: auto; 

我剛剛測試了一個jqGrid與很多控件,可以滾動沒有任何問題。

,你有奇怪的行爲的原因可能是你要麼忘了,包括可選的jqModal.jsjqDnR.js(見開頭相同http://www.trirand.com/jqgridwiki/doku.php?id=wiki:form_editing頁),或使用了錯誤的路徑文件,所以它們不會被加載。

+0

嘿奧列格感謝爲迴應。 我將jqModal.js和jqDnR.js庫添加到了我的腳本中(它們並未事先提供),但沒有任何更改。我認爲高度:自動風格是罪魁禍首。我可能是錯的,但它似乎調整高度以適應內容。永遠不會被調用的高度:auto。不應該固定高度來引起約束並使溢出成爲必要嗎?如我錯了請糾正我。 – gurun8 2010-05-21 14:48:56

+0

賓果!就是這樣。

標籤有一個高度:自動。當我將其改爲固定高度時,滾動條出現並完美運行。 $(「#FrmGrid_list」)。css(「height」,「300px」); 我也會在上面發表。 – gurun8 2010-05-21 14:55:50

0

這個問題很老了,但無論如何,我會添加一個答案。

我不知道這是否可行,但現在只需使用對話框的dataheight屬性(添加或編輯)來精確設置內部窗體的高度(以像素爲單位)。默認值是'auto',因此它不會溢出。如果需要,設置所需的高度顯示滾動條。

參考:http://www.trirand.com/jqgridwiki/doku.php?id=wiki:form_editing