jqgrid可滚动对话框

时间:2010-05-21 02:20:49

标签: dialog scroll jqgrid

我有一个jqGrid,其中添加/编辑对话框的表单长度超过对话框高度,但对话框不会滚动。我试图在对话框中添加overflow: auto样式但没有效果:

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

但是,如果我将auto更改为scroll,我至少会看到一个滚动条但仍然没有滚动:

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

这至少让我有一丝希望,我正走在正确的轨道上。

API文档似乎没有任何方向支持滚动:

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

有谁知道如何将工作滚动条添加到jqGrid使用的jqModal对话框窗口中?

更新

这是一个完整的黑客工作,但我有一个滚动条出现并执行以下操作:

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

我将此附加到afterShowForm事件。但是,这确实无法解决问题,因为它会导致其他领域出现其他问题。

3 个答案:

答案 0 :(得分:3)

我以为我会与其他人分享我的解决方案。

form元素具有默认的height: auto;样式属性,导致overflow: auto;无法按预期运行。要进行溢出滚动,需要将高度设置为固定数字以约束form容器,从而使overflow成为必需。

我使用以下代码将{css更新附加到afterShowForm表单编辑事件:

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

请注意,300px是我选择进行测试的任意数字。这个数字将根据我的需要进行调整。它甚至可以在调整大小时动态调整。谁知道呢。

另外,使用Firebug我发现我的表单ID是 FrmGrid_list 。我的网格ID为列表(例如<table id="list"></table>jQuery("#list").jqGrid({...});)。如果您的网格名称不是列表,则表单ID(上面)应该反映出来。

参考链接:

答案 1 :(得分:1)

你的问题听起来很奇怪。每个编辑/添加对话框都有一个名为“FormPost”的可滚动form。此表单具有以下样式:

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

我刚测试了一个带有很多控件的jqGrid,可以毫无问题地滚动到那里。

您遇到奇怪行为的原因可能是您忘记包含可选的 jqModal.js jqDnR.js (请参阅相同的{{3}开头的页面)或使用错误的文件路径,因此不会加载它们。

答案 2 :(得分:0)

这个问题非常陈旧,但无论如何我都会添加一个答案。

我不知道之前是否可以这样做,但现在你可以简单地使用对话框的dataheight属性(添加或编辑)来精确设置内部表单的高度(以像素为单位)。默认值为“auto”,因此不会溢出。如有必要,设置所需的高度会显示滚动条。

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

相关问题