init
This commit is contained in:
commit
e124a47765
19374 changed files with 9806149 additions and 0 deletions
86
KretaWeb/Helpers/Grid/Converter.cs
Normal file
86
KretaWeb/Helpers/Grid/Converter.cs
Normal file
|
@ -0,0 +1,86 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Data;
|
||||
using System.Text;
|
||||
using Kendo.Mvc;
|
||||
using Kendo.Mvc.Extensions;
|
||||
using Kendo.Mvc.UI;
|
||||
using Kreta.Core;
|
||||
using Kreta.Framework.Util;
|
||||
|
||||
namespace Kreta.Web.Helpers.Grid
|
||||
{
|
||||
public static class Converter
|
||||
{
|
||||
public static GridParameters GridParameter(DataSourceRequest request)
|
||||
{
|
||||
var gridParameters = new GridParameters
|
||||
{
|
||||
LoadResultSetInfo = true
|
||||
};
|
||||
|
||||
IList<SortDescriptor> sort = request.Sorts;
|
||||
if (sort != null && sort.Count > 0)
|
||||
{
|
||||
var sortString = new StringBuilder(string.Empty);
|
||||
foreach (SortDescriptor item in sort)
|
||||
{
|
||||
gridParameters.OrderDictionary.Add(item.Member, item.SortDirection);
|
||||
|
||||
sortString.Append(item.Member);
|
||||
sortString.Append(item.SortDirection == ListSortDirection.Ascending ? " ASC" : " DESC");
|
||||
sortString.Append(",");
|
||||
}
|
||||
|
||||
gridParameters.OrderBy = sortString.ToString(0, sortString.Length - 1);
|
||||
}
|
||||
|
||||
gridParameters.FirstRow = (request.Page - 1) * request.PageSize;
|
||||
gridParameters.LastRow = request.Page * request.PageSize - 1;
|
||||
|
||||
return gridParameters;
|
||||
}
|
||||
|
||||
[Obsolete(@"A ToDataSourceResult<T>-t kell használni model listákkal, mivel ezeket mostmár tudjuk sorbarendezni a GridParameters-el,
|
||||
így nincs szükség rá, hogy elmenjen a DataSet a Web-re ezért nincs is szükség itt sorrenezni őket!")]
|
||||
public static DataSourceResult ToDataSourceResult(this DataSet dataSet, DataSourceRequest request = null)
|
||||
{
|
||||
if (dataSet.Tables.Count < 1)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
DataTable firstLevel = dataSet.Tables[0];
|
||||
DataSourceResult result = firstLevel.ToDataSourceResult(request ?? new DataSourceRequest());
|
||||
result.Total = Convert.ToInt32(firstLevel.ExtendedProperties["RowCount"]);
|
||||
return result;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Generikus objektumlistából készítünk Kendo-s DataSourceResult-ot a Kendo-s grid-eknek.
|
||||
/// Sorba rendezzük az adatokat és beállítjuk a lapozást a GridParameters objektum alapján a SortingAndPaging extension method-dal.
|
||||
/// Végül visszaadjuk az eredményt, beállítva az összes elem számát is(ez az összes elem számának megjelenítéséhez kell a grid-en).
|
||||
/// </summary>
|
||||
/// <typeparam name="T">A T bármilyen típusú objektum lehet, de leginkább Model-ekkel kellene használni.</typeparam>
|
||||
/// <param name="itemList">A T típusú objektumlista, amivel dolgozunk.</param>
|
||||
/// <param name="gridParameters">A GridParameters property-jei(OrderList, FirstRow, LastRow) alapján határozzuk meg, hogy milyen paraméterek alapján rendezzünk sorba és állítjuk be a lapozást.</param>
|
||||
/// <returns></returns>
|
||||
public static DataSourceResult ToDataSourceResult<T>(this List<T> itemList, GridParameters gridParameters = null)
|
||||
{
|
||||
if (itemList == null)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
List<T> data = gridParameters == null ? itemList : itemList.SortingAndPaging(gridParameters.OrderDictionary, gridParameters.FirstRow, gridParameters.LastRow);
|
||||
var dataSourceResult = new DataSourceResult
|
||||
{
|
||||
Data = data,
|
||||
Total = itemList.Count
|
||||
};
|
||||
|
||||
return dataSourceResult;
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue