我有一个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
事件。但是,这确实无法解决问题,因为它会导致其他领域出现其他问题。
答案 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