fakhravari
پنج شنبه 23 اردیبهشت 1395, 15:09 عصر
با سلام
به چه شکل از قابلیت صفحه بندی SQL برای این گرید استفاده کنیم؟
maxpayn2
یک شنبه 26 اردیبهشت 1395, 15:35 عصر
سلام . گرید تلریک خودش صفحه بندی داره
fakhravari
یک شنبه 26 اردیبهشت 1395, 15:43 عصر
سلام
عزیز دل صفحه بندی sql مد نظرم که هر 10 تا 10 تا مثلا واکشی کنید
fakhravari
پنج شنبه 30 اردیبهشت 1395, 14:47 عصر
using System;using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Web;
using Telerik.Web.UI;
namespace RadGridSample
{
public class RadGridHelper
{
public static string GetOrderBy(GridTableView tableView)
{
return GetOrderBy(tableView, string.Empty, new string[0]);
}
public static string GetOrderBy(GridTableView tableView, string fieldNamePrefix, params string[] skipFieldNames)
{
var foundKeys = new List<string>();
var orderBy = new StringBuilder();
if (fieldNamePrefix == null)
{
fieldNamePrefix = string.Empty;
}
if (skipFieldNames == null)
{
skipFieldNames = new string[0];
}
foreach (GridSortExpression sortExpression in tableView.SortExpressions)
{
switch (sortExpression.SortOrder)
{
case GridSortOrder.Ascending:
Append(orderBy, skipFieldNames.Contains(sortExpression.FieldName) ? sortExpression.FieldName : fieldNamePrefix + sortExpression.FieldName);
if (tableView.DataKeyNames.Any(kn => !foundKeys.Contains(kn)))
{
foundKeys.Add(sortExpression.FieldName);
}
break;
case GridSortOrder.Descending:
Append(orderBy, skipFieldNames.Contains(sortExpression.FieldName) ? sortExpression.FieldName : fieldNamePrefix + sortExpression.FieldName, " desc");
if (tableView.DataKeyNames.Any(kn => !foundKeys.Contains(kn)))
{
foundKeys.Add(sortExpression.FieldName);
}
break;
case GridSortOrder.None:
break;
default:
break;
}
}
foreach (string keyName in tableView.DataKeyNames.Where(kn => !foundKeys.Contains(kn)))
{
Append(orderBy, skipFieldNames.Contains(keyName) ? keyName : fieldNamePrefix + keyName);
}
return (orderBy.ToString());
}
private static void Append(StringBuilder builder, params string[] strings)
{
if (builder.Length > 0 && strings.Length > 0)
{
builder.Append(",");
}
foreach (var s in strings)
{
if (builder.Length > 0)
{
builder.Append(" ");
}
builder.Append(s);
}
}
public static string GetFilterExpression(GridTableView view, string fieldNamePrefix, params string[] skipFieldNames)
{
if (string.IsNullOrEmpty(fieldNamePrefix))
{
return view.FilterExpression;
}
if (skipFieldNames == null)
{
skipFieldNames = new string[0];
}
string result = view.FilterExpression;
foreach (var column in view.Columns)
{
if (!(column is GridBoundColumn) || string.IsNullOrEmpty((column as GridBoundColumn).DataField))
{
continue;
}
string fieldName = (column as GridBoundColumn).DataField;
if (!skipFieldNames.Contains(fieldName))
{
result = result.Replace(fieldName, fieldNamePrefix + fieldName);
}
}
return result;
}
}
}
using System;using Telerik.Web.UI;
namespace RadGridSample
{
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
RadGrid1.DataBind();
}
}
protected void RadGrid1_NeedDataSource(object source, GridNeedDataSourceEventArgs e)
{
if (!e.IsFromDetailTable)
{
string where = RadGridHelper.GetFilterExpression(RadGrid1.MasterT ableView, null);
string orderBy = RadGridHelper.GetOrderBy(RadGrid1.MasterTableView) ;
if (e.RebindReason == GridRebindReason.InitialLoad || e.RebindReason == GridRebindReason.ExplicitRebind)
{
RadGrid1.VirtualItemCount = Book.GetBooksCount(where);
}
int skip = RadGrid1.MasterTableView.CurrentPageIndex * RadGrid1.MasterTableView.PageSize;
int take = RadGrid1.MasterTableView.PageSize;
RadGrid1.DataSource = Book.GetBooks(where, orderBy, skip, take);
}
}
}
}
vBulletin® v4.2.5, Copyright ©2000-1403, Jelsoft Enterprises Ltd.