【问题标题】:how to show readonly fields in edit form in jqgrid or other way to show whole text from readonly column如何在 jqgrid 的编辑表单中显示只读字段或以其他方式显示只读列中的整个文本
【发布时间】:2011-10-26 18:20:11
【问题描述】:

jqGrid colModel 包含使用以下属性定义的只读多行列。 内容行长大于列宽,文本太长,以至于 tooltio 无法显示其全部内容。无法查看全部内容。

我正在寻找一种允许用户查看整个列内容的方法。 例如,如果按下编辑表单按钮,则此列内容应在编辑表单中显示为只读文本区域。 但是,只读列不会出现在编辑表单中。

如何让用户看到整个栏目内容?

colModel: [{
"name":"LoggedLongText",
"editable":false,"width":539,
"classes":"jqgrid-readonlycolumn","fixed":true,
"hidden":false,"searchoptions":{"sopt":["cn","eq","ne","lt","le","gt","ge","bw","ew","nc"]}}
}]

【问题讨论】:

    标签: javascript jqgrid


    【解决方案1】:

    是设置

    editable: true, editoptions: { readonly: "readonly" }
    

    你可能需要什么?

    更新: Free jqGrid 从 4.8 版开始支持更多的 editable 属性值。 The wiki article 描述了editable 可以是函数,并且在使用表单编辑的情况下它还支持三个字符串值:"hidden""disabled""readonly"

    【讨论】:

    • 我只想在编辑模式下只读用户名字段。我该怎么做? b/c 当我在用户名中应用此更改时,在添加模式下启用只读,因此我无法添加新用户名。请建议。
    • @farhan:如果您使用the inline editing mode,请查看here。如果您使用form editing,请阅读another answer。这两个答案都显示了如何动态地更改editable 或该行的列的任何其他属性。
    • 谢谢,它已修复。我还有一个问题。请查看链接stackoverflow.com/questions/7346722/…,感谢您在我遇到困难时查看此问题。
    • 谢谢。你摇滚奥列格!
    • @CJRamki:不客气!在某些情况下,editoptions: { disabled: "disabled" } 甚至更好。可以在可编辑字段上设置 any 属性(大多数情况下为<input>)。如果editoptions 的属性名称未知,jqGrid 会将其解释为需要设置的附加属性的名称。
    【解决方案2】:

    要显示只读字段,您可以尝试在editoptions 中使用"disabled:disabled"

    另一种选择是使用返回跨度的自定义元素类型,如下所示:

    colModel: [ 
          ... 
          {name:'price', ..., editable:true, edittype:'custom', editoptions:{custom_element: myelem, custom_value:myvalue} },
          ...
       ]
    ..
    function myelem (value, options) {
      var el = document.createElement("span");
      $(el).val(value);    // be sure to escape special characters as necessary.
      return el;
    }
    
    function myvalue(elem, operation, value) {
    // just reutrun null or empty string.
    return "";
    }
    

    我更喜欢使用“readonly:readonly”,因为readonly 选项将输入控件包裹在单元格值周围,输入控件仍然接收焦点,我认为这会误导用户。使用"disabled:disabled" 可以防止输入元素更好地接收,这在可用性方面稍微好一些。

    使用跨度要好得多。有趣的是,jqGrid 甚至会向服务器发送“unsuccessful”表单控件。

    希望这会有所帮助。 -- jqr

    【讨论】:

      【解决方案3】:

      要在 EditForm 上显示只读字段,您必须尝试在 jqGrid 列的 editoptions 中使用 {readonly: true} 属性,这样就可以了。

      【讨论】:

      • 是的。如果不是逐字逐句,那将是一个副本。
      猜你喜欢
      • 1970-01-01
      • 2011-03-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-08-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多