2016-03-18 3 views
2

新しいレコードを追加するためのモーダルポップアップを使用していますが、現在のレコードを編集するためにインラインを使用しています。新しいレコードを追加するときに、モーダルポップアップの列の一部を非表示にしたいと思います。jqGridモーダル専用の隠し属性

列を非表示に設定した場合:trueまたは編集可能:trueの場合、グリッドにも表示されません。モデルを追加するポップアップで列を非表示にするにはどうすればよいですか?まだグリッドに表示されていますか?オレグの回答に

更新(関数として編集可能な属性を設定し、隠されたテスト):

{ 
      key: false, name: 'FINAL_DT', index: 'FINAL_DT', 
      editable: true, formatter: 'date', 
      formatoptions: { newformat: 'm-d-Y' }, 
      formoptions: {}, 
      editrules: { custom: true, custom_func: validDateCheck }, 
      editable: function (options) { 
       if (options.mode === "addForm") 
       { 
        hidden = true; 
       } 
      }, 
      editoptions: { 
       dataInit: function (element) { 
        $(element).datepicker({ 
         id: 'finalDt_Datepicker', 
         dateFormat: 'mm-dd-yy', 
         //minDate: new Date(2010, 0, 1), 
         maxDate: new Date(2020, 0, 1), 
         showOn: 'focus' 
        }); 
       } 
      } 
     } 

答えて

1

ソリューションはjqGridのバージョンおよび使用フォークから依存しています。最も簡単な解決策は、free jqGridの最新バージョン(4.13.1)にアップグレードする場合です(これは私が開発するフォークです)。古いバージョンをNuGet経由でインストールした場合は、アンインストールして、無料のjqGridをhereからインストールする必要があります。ローカルでCDNまたはdownloadから使用できます。

無料jqGridは、editable属性を関数として定義できます。詳細は、the wiki articleを参照してください。 options.mode === "addForm"の場合、"hidden"の値をeditableコールバックからテストできます。

+0

ありがとうございました!あなたの答えは救命です!私はいくつかのコードで私の質問を更新しました。私はoptions.modeをaddFormとtrueに設定することをテストしています。これは、モーダルフォームのポップアップで列を非表示にしますが、グリッドで非表示にしません。ただし、グリッドでは編集できません。 – vmil

+0

私はjqgrid 4.4.4を使用しています。フォークを使用する必要がありますか、またはこのバージョンで動作させることはできますか? – vmil

+0

@vmil:あなたはあなたの質問に書いています:「モデル追加ポップアップで列を非表示にしてもグリッドに表示するにはどうすればよいですか?あなたは書いています: "今はグリッドで編集できません。"どういう意味ですか?どのテストケースが正確に意味するのですか?フォーム編集、インライン編集のために 'options.mode'をテストして、シナリオで必要な値を返すことができます。私は、フリーのjqGridの中でコールバック(そして、バージョンやウィキのすべてのreadmeに記載されている他の多くの機能)として 'editable'という機能を実装しました。この機能は、レトロバージョン4.4.4で終了しません。 – Oleg

関連する問題