![](/img/trans.png)
[英]Slickgrid changes the ID from my data and dont clean up the empty row
[英]SlickGrid Row ID changes after filtering
我有一個內聯過濾(使用DataView)的slickgrid。 我為數據的每一行分配了唯一的ID,並將該ID(而不是行號)傳遞給一個函數,該函數在UI的其他位置更新div。
如果我不過濾,效果很好。 但是,如果我在傳遞ID之前對列進行了過濾,則會更改ID以反映行號。 甚至會將字符串ID更改為行號。
這看起來很奇怪。 知道發生了什么嗎?
grid_msc.onClick.subscribe(function(e, args) {
var cell = grid_msc.getCellFromEvent(e);
var row = cell.row; // get row #
var row_ID = data_msc[row].id; // get the row ID, not row #
var msc = data_msc[args.row][grid_msc.getColumns()[args.cell].field];
alert("Row#:"+row+", RowID:"+row_ID+", Value:"+msc);
mscToUI(msc, row_ID);
});
// Add the selected item to the UI
function mscToUI(addC, cellNum) {
alert(addC+", "+cellNum);
$('#selectedMsc').append('<a href="javascript:removemsc('+cellNum+')" id="'+cellNum+'" class="rSel"><img src="images/remove.png" align="texttop" border="0" style="padding-right:4px;">'+addC+'<br /></a>');
}
})
如果您已經使用數據視圖,那么你應該得到從它行/數據( dataView_msc
),而不是原始數據源( data_msc
)。
grid_msc.onClick.subscribe(function(e, args) {
var cell = grid_msc.getCellFromEvent(e); // get the cell
var row = cell.row; // get the row's index (this value will change on filter/sort)
var item = dataView_msc.getItem(row); // get the row's item (see: object, data)
var msc = item[grid_msc.getColumns()[cell.cell].field]; // get the value of the cell
alert("Row Index:"+row+", RowID:"+item.id+", Cell Value:"+msc);
console.log(item);
mscToUI(msc, item.id);
});
我不太確定您打算在mscToUI()
使用單擊的單元格的值及其行的id
屬性的值來做什么。 我認為將行的整個數據對象( item
)簡單地傳遞給函數並使用DataView的lookup方法執行任何其他操作可能會更聰明:
getIdxById(id)
-使用項目的ID,在網格中找到相對行索引 getItem(i)
-使用過濾后的網格的行索引,返回所述行的數據/項目 getItemById(id)
-使用商品的ID,返回該商品的數據/商品 getItemByIdx(i)
-使用未過 getItemByIdx(i)
格的行索引,返回所述行的數據/項目
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.