列 (行ごとに一意の ID 列) を非表示にしたいのですが、行でアクションが実行されるときにそのデータが行に必要なため、「列」配列から削除できません (選択、ソートなど)。
たとえば、並べ替えられた後、以前のスタイルに一致する行を取得する必要があり、ID 列を使用してこれを行うことができます。行にデータが必要ですが、表示したくないだけです。
ありがとう。
列 (行ごとに一意の ID 列) を非表示にしたいのですが、行でアクションが実行されるときにそのデータが行に必要なため、「列」配列から削除できません (選択、ソートなど)。
たとえば、並べ替えられた後、以前のスタイルに一致する行を取得する必要があり、ID 列を使用してこれを行うことができます。行にデータが必要ですが、表示したくないだけです。
ありがとう。
答えはノーですが、それはあなたが探している答えではありません:)
データを取得するために列が見ているもの以外に、それらとデータ項目がどのように見えるかの間にハードリンクはありません。データ項目に ID を持つために列を表示する必要はありません。
誰かがまだこれを探している場合に備えて、方法を見つけました...非常にエレガントではありませんが、機能します。Simon が提案したように、ID 列をグリッドの最後に追加します。次のように、cssClass と headerCssClass の両方を「display:none !important」に設定し、幅、minWidth、および maxWidth 列オプションを 0 に設定します。
var columns = [
{ id: "MyColumnId", name: "My Column", field: "MyColumnData", width: 100},
{ id: "Id", name: "Id", field: "Id", width: 0, minWidth: 0, maxWidth: 0, cssClass: "reallyHidden", headerCssClass: "reallyHidden" }
];
CSSは次のとおりです。
.reallyHidden { 表示: なし !重要;}
それが役立つことを願っています。
回避策として、width/maxWidth を 1 に設定し、名前を空の文字列に設定して、列を他のすべての列の右端に配置することはできません。そのように(例はcoffeescriptにあります。構文が不明な場合はhttp://js2coffee.org/を使用してください):
columns = [
... some columns ...
{
id:"hidden"
name:""
field:"id"
sortable:"true"
width: 1
maxWidth: 1
minWidth: 1
unselectable: true
formatter: (row,cell,val,columnDef,dataContext) ->
"<div style='display: none;'>#{val}</div>"
}
]