Если кто-то ищет Linq verson, это работает для меня:
public static IQueryable<BlockVersion> LatestVersionsPerBlock(this IQueryable<BlockVersion> blockVersions)
{
var max_version_per_id = blockVersions.GroupBy(v => v.BlockId)
.Select( v => new { BlockId = v.Key, MaxVersion = v.Max(x => x.Version) } );
return blockVersions.Where( v => max_version_per_id.Any(x => x.BlockId == v.BlockId && x.MaxVersion == v.Version) );
}
При использовании плагина DataTables с разбиением на страницы в DOM существуют только текущие строки страниц для обеспечения производительности и совместимости. Поэтому, когда вы отправляете форму, отправляются только текущие формы формы страницы.
Трюк состоит в том, чтобы повернуть элементы формы со страниц, отличных от текущего, в <input type="hidden">
перед отправкой формы.
var table = $('#example').DataTable();
// Handle form submission event
$('#frm-example').on('submit', function(e){
var form = this;
// Encode a set of form elements from all pages as an array of names and values
var params = table.$('input,select,textarea').serializeArray();
// Iterate over all form elements
$.each(params, function(){
// If element doesn't exist in DOM
if(!$.contains(document, form[this.name])){
// Create a hidden element
$(form).append(
$('<input>')
.attr('type', 'hidden')
.attr('name', this.name)
.val(this.value)
);
}
});
});
См. jQuery DataTables: как отправить все данные формы страницы - Отправить непосредственно для получения более подробной информации и примеров.
Другое решение - отправить форму через Ajax.
var table = $('#example').DataTable();
// Handle form submission event
$('#frm-example').on('submit', function(e){
// Prevent actual form submission
e.preventDefault();
// Serialize form data
var data = table.$('input,select,textarea').serialize();
// Submit form data via Ajax
$.ajax({
url: '/echo/jsonp/',
data: data,
success: function(data){
console.log('Server response', data);
}
});
});
См. jQuery DataTables: как отправить все данные формы страницы - Отправить через Ajax для получения более подробной информации и примеров.
Обратите внимание, что оба решения будут работать только в режиме обработки на стороне клиента.
См. jQuery Таблицы данных: как отправить данные всех страниц для более подробной информации.