代码之家  ›  专栏  ›  技术社区  ›  gurun8

jqgrid可滚动对话框

  •  1
  • gurun8  · 技术社区  · 14 年前

    我有一个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 回复  |  直到 7 年前
        1
  •  3
  •   gurun8    14 年前

    我想我会分享我的解决方案供其他人参考。

    这个 form 元素具有默认值 height: auto; 导致 overflow: auto; 不按要求工作。要使溢出滚动,需要将高度设置为固定数字以约束 形式 容器,因此 overflow 必要的。

    我附加了一个CSS更新到 afterShowForm 表单编辑事件,使用以下代码:

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

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

    此外,使用Firebug,我发现我的表单ID是 FrMGRIDIL列表 . 我的网格ID是 列表 (例如) <table id="list"></table> jQuery("#list").jqGrid({...}); )如果网格的名称不是列表,那么表单ID(上面)应该反映出这一点。

    参考链接:

        2
  •  1
  •   Oleg    14 年前

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

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

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

    你有这种奇怪行为的原因可能是你忘记了包括可选的 JQMODAL.JS JQDNR.JS (见相同) http://www.trirand.com/jqgridwiki/doku.php?id=wiki:form_editing 或者使用错误的文件路径,因此不会加载这些文件。

        3
  •  0
  •   DiegoDD    7 年前

    这个问题很古老,但我还是要补充一个答案。

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

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