2013-04-07 72 views
4

我想創建一個隱藏的列,將包含該行的唯一「id」作爲屬性中的一個「data-id」之一。因爲我似乎無法弄清楚如何檢索行後面的數據模型。我正在使用服務器端數據源。如何隱藏在fuelux datagrid列

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

在我使用一些佔位符標記格式,可能是一個跨度

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

然後我點擊處理程序添加到該行,然後獲取數據-ID列:

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

這是正確的嗎?或者,我應該嘗試將數據ID添加到tr標籤/行本身?上述概念的作品,但我只需要知道如何隱藏列:)

感謝

編輯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 + '"/>'; 
    }); 
} 

然後檢索像這樣(使用jQuery)

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

確定的ID?

+0

Thx mate!這就像一個魅力:) 事實上,我並不需要隱藏任何東西,只是將item.id的值傳遞給函數內的另一個格式化程序,我很好走! 乾杯 – dan 2015-02-03 02:55:58

回答

2

columns屬性僅用於可見列。所以,這聽起來像你想要刪除它,並在你的格式化程序創建一個跨度爲data-id屬性爲您的其他(可見)列之一。如果有任何按鈕或其他控件用於處理行中的項目,我通常會在最後一列中執行此操作。

+0

是的,這將工作。但在我的情況下,行動是通過行點擊不是一些其他的行動鏈接/按鈕。隱藏/顯示列功能有用嗎? thx – gurpal2000 2013-04-07 08:42:22

+0

您是否找到了解決方案?讓我也瞭解我們。我有一列包含每行的編輯按鈕。我想通過該行對象,當我clik編輯按鈕在該行 – Lasang 2013-04-09 10:37:40

+0

@Lasang - 請參閱我的編輯到OP – gurpal2000 2013-04-14 22:12:50