1. ホーム
  2. javascript

[解決済み] jqGridの隠しカラム

2022-02-12 13:10:03

質問

jqGrid テーブルのカラムを非表示にして、フォームエディターのモーダルダイアログで行を編集するときに読み取り専用として表示する方法はありますか?

解決方法を教えてください。

を拡大したいだけです。 クイーン3 の提案で、以下を適用するとうまくいきます。

editoptions: { 
              dataInit: function(element) { 
                          $(element).attr("readonly", "readonly"); 
                        } 
             }

シナリオ#1 :

  • フィールドがグリッドに表示されていること
  • フォームにフィールドが表示されていること
  • フィールドは読み取り専用でなければならない

解決方法 :

colModel:[
        {  name:'providerUserId',
               index:'providerUserId', 
               width:100,editable:true, 
               editrules:{required:true}, 
               editoptions:{ 
                            dataInit: function(element) { 
                                  jq(element).attr("readonly", "readonly"); 
                             } 
                           }
            },
],

providerUserIdはグリッドに表示され、フォームを編集するときに見えるようになっています。しかし、内容を編集することはできません。


シナリオその2 :

  • フィールドはグリッドに表示されてはならない
  • フォームにフィールドが表示されている必要があります
  • フィールドは読み取り専用でなければならない

解決方法 :

colModel:[
           {name:'providerUserId',
            index:'providerUserId', 
            width:100,editable:true, 
            editrules:{
                         required:true, 
                         edithidden:true
                      },
            hidden:true, 
            editoptions:{ 
                  dataInit: function(element) {                     
                             jq(element).attr("readonly", "readonly"); 
                          } 
                     }
         },
        ]

どちらの場合も、通常の $ の代わりに jq を使って jquery を参照していることに注意してください。私のHTMLでは、jQueryが使用する変数を変更するために、以下のスクリプトを使用しています。

<script type="text/javascript">
    var jq = jQuery.noConflict();
</script>