4

「data-id」などの属性として行の一意の「id」を含む非表示の列を作成しようとしています。行の背後にあるデータモデルを取得する方法がわからないためです。サーバー側のデータソースを使用しています。

columns: [{
  property: 'hiddencolumn',
  label: '',
  hidden: true   <-- ?????
} .. .. ],

フォーマッタでは、いくつかのプレースホルダー タグを使用します。

$.each(items, function(index, item) {
  item.hiddencolumn = '<span data-id="' + item.id + '"</span>';
});

次に、行にクリック ハンドラーを追加し、data-id 列を取得します。

$('#MyGrid').on('loaded', function() {
  $('#MyGrid > tbody > tr').click(function() {
    console.log($(this).find('> td > span').attr('data-id'));
  });
});

これは正しいです?または、tr タグ/行自体に data-id を追加しようとする必要がありますか? 上記の概念は機能しますが、列を非表示にする方法を知る必要があります:)

ありがとう

4月14日編集-これを解決するために私がしたことは次のとおりです。data-id を使用して、既存の列のスパンを非表示にします。私にとっては、モデルに「日付」と「id」フィールドがありました。日付フィールドに id をタグ付けすることにしました。

formatter: function(items) {
  $.each(items, function(index, item) {
    item.date = item.date + '<span style="visibility: hidden;" data-id="' + item.id + '"/>';
  });
}

次に、そのようにIDを取得します(jqueryを使用)

$('#MyGrid').on('loaded', function() {
  $('#MyGrid > tbody > tr').click(function() {
    console.log($(this).find('> td > span').attr('data-id')); // value is here
  });
});

わかった?

4

1 に答える 1