【问题标题】:how to restrict jqgrid textarea height in grid only如何仅在网格中限制 jqgrid textarea 的高度
【发布时间】:2012-10-27 19:41:32
【问题描述】:

Textarea 包含很多或行。在 jqgrid 网格中,只应显示第一行。 在 jqgrid 视图窗口中,还应该显示更多的行和可能的滚动条。

来自How to restrict maximum height of row in jqgrid的奥列格回答

将视图窗口中的文本区域高度也限制为单行。 如何仅在网格中显示第一行,但在 jqgrid 视图形式中显示更多行?

colmodel 是:

{"name":"Description",
  "edittype":"textarea",
  "wrap":"on",
  "formatter":function(v){ return '<div style="max-height:20px">'+$.jgrid.htmlEncode(v)+'</div>';
                             } 
  ,"editoptions":{"class":"","rows":18,"wrap":"off","style":"width:800px",
      "readonly":"readonly"
      },
  "editrules":{"edithidden":true},"editable":true,"width":539,
  "classes":"jqgrid-readonlycolumn"}

jqgrid 视图窗口显示多行。这应该保持不变:

grid 还显示多行。这是错误的。:

如何强制网格在每个文本区域中只显示第一行

或者可以在屏幕底部显示更多行:如果某行变为活动状态,则 textarea 列的前 10 行应显示在底部。这就像在 Windows 日志查看器中:移动到事件行在单独的窗口中显示事件长数据

【问题讨论】:

    标签: javascript jquery-ui jqgrid


    【解决方案1】:

    如果我正确理解您的问题,您可以通过相对简单的方式解决它。您应该只使用 CSS 而不是内联样式来设置具有多行数据的 div 的 max-height。例如,您可以使用colModelclasses 属性在具有多行元素的列的&lt;td&gt; 元素上设置一些类。比如你会使用classes: "textInDiv"&lt;td&gt;对应列的单元格会得到class属性。因为您在网格内部和视图表单内部具有不同的元素层次结构,您可以在两种情况下指定不同的高度限制:

    {name: "Description", edittype: "textarea", classes: "textInDiv",
        formatter: function (v) {
            return '<div>' + $.jgrid.htmlEncode(v) + '</div>';
        }}
    

    tr.jqgrow>td.textInDiv>div {
        max-height: 20px;
        overflow: auto
    }
    td.form-view-data>span>div {
        max-height: 150px;
        overflow: auto
    }
    

    The demo 展示结果。您如何在以下图片中看到单元格包含的max-height 对于网格和视图表单是不同的:

    【讨论】:

    • 您好@Oleg- 非常感谢您,您的回答在使用 jQgrid 时对我有所帮助。如果可能的话,你能告诉我如何使 jQgrid 中的可编辑单元格高度等于包含它的单元格的高度吗?默认情况下,它正在呈现一个文本框。
    • @RahulSingh:不客气!请在您更准确地描述问题的地方发布新问题。您使用哪种编辑模式? jqGrid 的哪个分支(jqGrid 4.7 或早期版本,免费的 jqGrid 或 Guriddo jqGrid JS)以及您使用哪个版本?
    • @Oleg 一行可以有多行,我只想在每行中显示第一行。与其将其显示为弹出窗口,不如单击特定行应在展开和折叠状态之间切换。单元格不可编辑。我怎样才能做到这一点?
    • @b.g:听起来太抽象了。要谈论解决方案,您应该首先描述列中的数据类型。例如,您可以在选择/取消选择行时更改行的高度。我建议您发布单独的问题,在其中更详细地描述您需要实施的内容。带有一些测试数据的演示(例如在 JSFiddle 中)会非常好。您还应该在所有问题中包含有关您使用(可以使用)的 jqGrid 版本和 jqGrid 分支(免费 jqGrid、商业 Guriddo jqGrid JS 或旧 jqGrid
    猜你喜欢
    • 2011-09-28
    • 1970-01-01
    • 2018-09-06
    • 2021-10-12
    • 1970-01-01
    • 2011-09-22
    • 2011-11-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多