protected void Page_Load(object sender, EventArgs e) { _pager = new SessionData() .Get("sf_Example_Pager", () => new Pager {TotalItems = 123, PageSize = 10}); PagerControl1.Register(_pager); }
public async Task <IPager <State> > FindAll(IPager <State> pager) { CMDText = String.Format(FINDALLPAGER_STMT, pager.PageSize * pager.PageNbr, pager.PageSize); //CMDText += ORDERBY_STMT + OrderBy; MapToObject = new StateMapToObject(logger); pager.Entities = await base.FindAll(); CMDText = FINDALLCOUNT_STMT; pager.RowCount = await base.FindAllCount(); return(pager); }
/// <summary> /// 初始化排序 /// </summary> public static void InitOrder <TEntity>(IQueryable <TEntity> source, IPager pager) { if (string.IsNullOrWhiteSpace(pager.Order) == false) { return; } if (source.Expression.SafeString().Contains(".OrderBy(")) { return; } pager.Order = "Id"; }
/// <summary> /// 初始化 <see cref="PaginalResult{T}"/> 类的新实例。 /// </summary> /// <param name="data"></param> /// <param name="pager"></param> public PaginalResult(IEnumerable <T> data, IPager pager) { Data = data; Succeed = true; if (pager != null) { Pages = pager.PageCount; Total = pager.RecordCount; IsEnd = pager.CurrentPageIndex >= pager.PageCount - 1; } }
/// <summary> /// 初始化排序 /// </summary> /// <typeparam name="TEntity">实体类型</typeparam> /// <param name="query">数据源</param> /// <param name="pager">分页对象</param> private static void InitOrder <TEntity>(this IQueryable <TEntity> query, IPager pager) { if (string.IsNullOrWhiteSpace(pager.Order) == false) { return; } if (query.Expression.SafeString().Contains(".OrderBy(")) { return; } pager.Order = "Id"; }
public PagerModel(IPager pager) { CurrentPage = pager.CurrentPage; HasPreviousPage = pager.HasPreviousPage(); HasNextPage = pager.HasNextPage(); LastPage = pager.PageCount; Start = Math.Max(CurrentPage - Size, 2); SkippedLeft = (Start > 2); Stop = Math.Min(CurrentPage + Size, LastPage - 1); SkippedRight = (Stop < LastPage - 1); Length = Stop - Start + 1; }
/// <summary> /// 验证 /// </summary> /// <param name="pager">分页</param> public void Validate(IPager pager) { if (pager == null) { return; } if (_items.Count == 0) { throw new ArgumentException(LibraryResource.OrderIsEmptyForPage); } }
protected override void OnInit(EventArgs e) { base.OnInit(e); Control ctrlPagTop = this.LoadControl("/UserCOntrols/Pager.ascx"); PAGTOP = ctrlPagTop as IPager; PAGTOP.BrowsableControl = this; PAGTOP.PageSize = QuickParameters.PageSize; PAGTOP.CustomText = TopPagerCustomText; PAGTOP.PagerBreak = pagerBreak; ctrlPagTop.Visible = topPagerVisible; PAGTOP.ItemNameSingular = GuiLanguage.GetGuiLanguage("DataObjectProduct").GetString("Product"); PAGTOP.ItemNamePlural = GuiLanguage.GetGuiLanguage("DataObjectProduct").GetString("Products"); PhPagTop.Controls.Add(ctrlPagTop); Control ctrlPagBot = this.LoadControl("/UserCOntrols/Pager.ascx"); PAGBOT = ctrlPagBot as IPager; PAGBOT.CustomText = BottomPagerCustomText; ctrlPagBot.Visible = bottomPagerVisible; PAGBOT.BrowsableControl = this; PAGBOT.PageSize = QuickParameters.PageSize; PAGBOT.PagerBreak = pagerBreak; PAGBOT.ItemNameSingular = GuiLanguage.GetGuiLanguage("DataObjectProduct").GetString("Product"); PAGBOT.ItemNamePlural = GuiLanguage.GetGuiLanguage("DataObjectProduct").GetString("Products"); PhPagBot.Controls.Add(ctrlPagBot); if (RepeaterLayout == RepeatLayout.Table && itemsPerRow > 0) { this.OBJOVW.RepeatLayout = RepeaterLayout; this.OBJOVW.RepeatColumns = itemsPerRow; this.OBJOVW.ItemStyle.Width = new Unit((int)Math.Round(100.0f / (float)itemsPerRow, 0) + "%"); } else { this.OBJOVW.RepeatLayout = RepeatLayout.Flow; } RestoreState(); if (Request.RawUrl.ToLower().IndexOf(Constants.Links["LINK_TO_SITE_SEARCH"].Url.ToLower()) == -1) { FillOffersByTagTabs(); } if ((PageType)Settings["ParentPageType"] == PageType.Overview) { ((IWidgetPageMaster)this.Page.Master).BreadCrumb.RenderOverviewPageBreadCrumbs(QuickParameters); } Reload(); SaveState(); }
/// <summary> /// 转换为分页列表,包含排序分页操作 /// </summary> /// <typeparam name="TEntity">实体类型</typeparam> /// <param name="query">数据源</param> /// <param name="pager">分页对象</param> /// <returns></returns> public static async Task <PagerList <TEntity> > ToPagerListAsync <TEntity>(this IQueryable <TEntity> query, IPager pager) { if (query == null) { throw new ArgumentNullException(nameof(query)); } if (pager == null) { throw new ArgumentNullException(nameof(pager)); } return(new PagerList <TEntity>(pager, await query.Page(pager).ToListAsync())); }
/// <summary> /// 克隆 /// </summary> /// <param name="sqlBuilder">源生成器</param> protected void Clone(SqlBuilderBase sqlBuilder) { EntityMatedata = sqlBuilder.EntityMatedata; _parameterManager = sqlBuilder._parameterManager?.Clone(); EntityResolver = sqlBuilder.EntityResolver ?? new EntityResolver(EntityMatedata); AliasRegister = sqlBuilder.AliasRegister?.Clone() ?? new EntityAliasRegister(); _selectClause = sqlBuilder._selectClause?.Clone(this, AliasRegister); _fromClause = sqlBuilder._fromClause?.Clone(AliasRegister); _joinClause = sqlBuilder._joinClause?.Clone(this, AliasRegister); _whereClause = sqlBuilder._whereClause?.Clone(AliasRegister, _parameterManager); _groupByClause = sqlBuilder._groupByClause?.Clone(AliasRegister); _orderByClause = sqlBuilder._orderByClause?.Clone(AliasRegister); _pager = sqlBuilder._pager; }
public void TestGetPagesByOrder() { DataContext context = new DataContext("Database=test;Data Source=127.0.0.1;User Id=root;Password=1;pooling=true;CharSet=utf8;"); IOrder order = new Order(); order.Add("ID", OrderDirection.Desc); IPager <DbTable> pager = context.GetPages <DbTable>(1, 1, order); Assert.AreNotEqual(0, pager.Total); Assert.AreEqual(1, pager.CurrentPage); Assert.AreEqual(1, pager.PageNum); Assert.AreEqual(3, pager.TotalPage); }
protected string BuildAllSql(IPager pager, string orderBy = null) { var strOrderBy = " ORDER BY " + (!string.IsNullOrEmpty(orderBy) ? orderBy : DbSchema.Sort); // Get TotalCount First var countSql = $"SELECT COUNT(*) AS TotalCount FROM ({ViewerSql}) AS {DbSchema.Name}"; pager.SetTotalCount(_dapper.ExecuteScalar <int>(countSql)); // Get Query Result var innerSql = $"SELECT ROW_NUMBER() OVER({strOrderBy}) AS RowNo, * FROM ({ViewerSql}) AS {DbSchema.Name}"; return($"SELECT * FROM ({innerSql}) AS t WHERE t.RowNo BETWEEN {pager.CurrentPage * pager.PagingSize + 1} AND {(pager.CurrentPage + 1) * pager.PagingSize}"); }
public PagesController(IPager pager, INavigator navigator) { if (pager == null) { throw new ArgumentNullException(nameof(pager)); } if (navigator == null) { throw new ArgumentNullException(nameof(navigator)); } _pager = pager; _navigator = navigator; }
/// <summary> /// 计算总页数。 /// </summary> /// <param name="dataPager">数据分页评估器。</param> private void CalculatePageCount(IPager dataPager) { var num = 0; if (dataPager.PageSize > 0) { num = dataPager.RecordCount / dataPager.PageSize; if ((num * dataPager.PageSize) < dataPager.RecordCount) { num++; } } dataPager.PageCount = num; }
protected override void OnInit(EventArgs e) { base.OnInit(e); Control ctrlPagTop = LoadControl("/UserControls/Pager.ascx"); pagerTop = ctrlPagTop as IPager; pagerTop.BrowsableControl = this; pagerTop.PageSize = QuickParameters.PageSize; pagerTop.CustomText = TopPagerCustomText; pagerTop.PagerBreak = pagerBreak; ctrlPagTop.Visible = topPagerVisible; pagerTop.ItemNameSingular = GuiLanguage.GetGuiLanguage("DataObjectSurvey").GetString("Survey"); pagerTop.ItemNamePlural = GuiLanguage.GetGuiLanguage("DataObjectSurvey").GetString("Surveys"); PhPagTop.Controls.Add(ctrlPagTop); Control ctrlPagBot = LoadControl("/UserControls/Pager.ascx"); pagerBottom = ctrlPagBot as IPager; pagerBottom.CustomText = BottomPagerCustomText; ctrlPagBot.Visible = bottomPagerVisible; pagerBottom.BrowsableControl = this; pagerBottom.PageSize = QuickParameters.PageSize; pagerBottom.PagerBreak = pagerBreak; pagerBottom.ItemNameSingular = GuiLanguage.GetGuiLanguage("DataObjectSurvey").GetString("Survey"); pagerBottom.ItemNamePlural = GuiLanguage.GetGuiLanguage("DataObjectSurvey").GetString("Surveys"); PhPagBot.Controls.Add(ctrlPagBot); if (RepeaterLayout == RepeatLayout.Table && itemsPerRow > 0) { OBJOVW.RepeatLayout = RepeaterLayout; OBJOVW.RepeatColumns = itemsPerRow; OBJOVW.ItemStyle.Width = new Unit((int)Math.Round(100.0f / itemsPerRow, 0) + "%"); } else { OBJOVW.RepeatLayout = RepeatLayout.Flow; } RestoreState(); if ((PageType)Settings["ParentPageType"] == PageType.Overview) { ((IWidgetPageMaster)Page.Master).BreadCrumb.RenderOverviewPageBreadCrumbs(QuickParameters); } Reload(); SaveState(); }
protected bool AggregatePager(IPager pager, out int?skip, out int?take) { var applyPager = false; skip = null; take = null; if ((pager.PageNumber.GetValueOrDefault(0) > 0) && (pager.PageSize.GetValueOrDefault(0) > 0)) { applyPager = true; skip = (pager.PageNumber.Value - 1) * pager.PageSize.Value; take = pager.PageSize.Value; } return(applyPager); }
private static TagBuilder Page(int i, IPager pager, Func <int, string> generatePageUrl, PagerOptions pagerOptions) { var format = string.Format(pagerOptions.TextToIndividualPages, i); var targetPageNumber = i; var page = new TagBuilder("a"); SetInnerText(page, format); page.AddCssClass(pagerOptions.PageClass); if (i == pager.CurrentPageIndex) { return(AddToListItem(page, pagerOptions, pagerOptions.ClassToLi + " " + pagerOptions.ClassToActiveLi)); } page.Attributes["href"] = generatePageUrl(targetPageNumber); return(AddToListItem(page, pagerOptions, null)); }
public static async Task <IUserMessage> SendPaginatedMessageAsync <T1, T2> ( this InteractiveService @this, [NotNull] SocketCommandContext context, [NotNull] UserFeedbackService feedback, [NotNull] IPager <T1, T2> pager, [CanBeNull] IMessageChannel channel = null, [CanBeNull] ICriterion <SocketReaction> criterion = null ) where T2 : IPager <T1, T2> { var callback = new PaginatedCallback <T1, T2>(@this, feedback, context, pager, channel, criterion); await callback.DisplayAsync().ConfigureAwait(false); return(callback.Message); }
/// <summary> /// 转换为分页列表 /// </summary> /// <typeparam name="TEntity">实体类型</typeparam> /// <param name="source">数据源</param> /// <param name="pager">分页对象</param> /// <returns></returns> public static async Task <PagerList <TEntity> > ToPagerListAsync <TEntity>(this IQueryable <TEntity> source, IPager pager) { if (source == null) { throw new ArgumentNullException(nameof(source)); } if (pager == null) { throw new ArgumentNullException(nameof(pager)); } var result = new PagerList <TEntity>(pager); result.AddRange(await source.ToListAsync()); return(result); }
public Model2Sql Model2SQL <T>(IPager <T> pager, IQuery query, IOrder order) { if (pager == null) { throw new ArgumentException("pager不能为空"); } if (order == null) { throw new ArgumentException("order不能为空"); } CheckKey <T>(); Model2Sql model = GetQuerySQL <T>(query); model.Sql = string.Format("SELECT {0} FROM {1} WHERE {2} ORDER BY {3} LIMIT {4},{5}", CreateQuery <T>(), ReflectionHelper.GetTypeName <T>(), model.Sql, GetOrderSQL <T>(order).Sql, (pager.CurrentPage - 1) * pager.PageNum, pager.PageNum); return(model); }
public async Task <IPaginationResult <ListItemModel> > GetPaginatedList(IPager pager) { var predicate = PredicateBuilder.New <Quiz>(true); if (!string.IsNullOrEmpty(pager.Search)) { predicate.And(q => q.Name.Contains(pager.Search)); } var data = await Unit.Quizzes.GetPaginatedList(pager, predicate, q => q.Name, OrderDirection.ASC); return(new PaginationResult <ListItemModel> { Items = Mapper.Map <List <ListItemModel> >(data.Items), Pager = data.Pager }); }
private static TagBuilder Previous(IPager pager, Func <int, string> generatePageUrl, PagerOptions pagerOptions) { var targetPageNumber = pager.CurrentPageIndex - 1; var previous = new TagBuilder("a"); AppendHtml(previous, string.Format(pagerOptions.TextToPreviousPage, targetPageNumber)); previous.Attributes["rel"] = "prev"; previous.AddCssClass(pagerOptions.PageClass); if (!pager.HasPreviousPage) { return(AddToListItem(previous, pagerOptions, pagerOptions.ClassToLi + " disabled")); } previous.Attributes["href"] = generatePageUrl(targetPageNumber); return(AddToListItem(previous, pagerOptions, pagerOptions.ClassToLi)); }
private static TagBuilder Last(IPager pager, Func <int, string> generatePageUrl, PagerOptions pagerOptions) { var targetPageNumber = pager.TotalPageCount; var last = new TagBuilder("a"); AppendHtml(last, string.Format(pagerOptions.TextToLastPage, targetPageNumber)); last.AddCssClass(pagerOptions.PageClass); if (pager.IsLastPage) { return(AddToListItem(last, pagerOptions, pagerOptions.ClassToLi + " disabled")); } last.Attributes["href"] = generatePageUrl(targetPageNumber); return(AddToListItem(last, pagerOptions, pagerOptions.ClassToLi)); }
private static TagBuilder First(IPager pager, Func <int, string> generatePageUrl, PagerOptions pagerOptions) { const int targetPageNumber = 1; var first = new TagBuilder("a"); AppendHtml(first, string.Format(pagerOptions.TextToFirstPage, targetPageNumber)); first.AddCssClass(pagerOptions.PageClass); if (pager.IsFirstPage) { return(AddToListItem(first, pagerOptions, pagerOptions.ClassToLi + " disabled")); } first.Attributes["href"] = generatePageUrl(targetPageNumber); return(AddToListItem(first, pagerOptions, pagerOptions.ClassToLi)); }
public static ToolStrip ActAsPaginator(this ToolStrip toolStrip, IPager pager, Func <uint, IPager> page) { Action <ToolStripButton> move = b => { var pageIndex = Convert.ToInt32(b.Tag); if (pageIndex < 0) { return; } pager = page((uint)pageIndex); toolStrip.UpdatePaginator(pager); }; toolStrip.Items["Prev"].Click += (s, a) => move((ToolStripButton)s); toolStrip.Items["Next"].Click += (s, a) => move((ToolStripButton)s); if (pager != null) { toolStrip.UpdatePaginator(pager); } var form = toolStrip.Parent; if (form == null) { throw new Exception("У paginatora нет родителя, всего скорее ты нужно добавлять поведение позже"); } var controls = form.Controls.Cast <Control>().Flat(control => control.Controls.Cast <Control>()); var tables = controls.Where(control => control is TableHost); Control table; if (tables.Count() > 1) { table = tables.Where(t => t.Tag != null).First(control => String.Compare(control.Tag.ToString(), TableName) == 0); } else { table = tables.First(); } table.InputMap() .KeyDown(Keys.Left, () => move((ToolStripButton)toolStrip.Items["Prev"])) .KeyDown(Keys.Right, () => move((ToolStripButton)toolStrip.Items["Next"])); return(toolStrip); }
/// <summary> /// Initializes a new instance of the <see cref="PaginatedCallback{T1, T2}"/> class. /// </summary> /// <param name="interactive">The interaction service.</param> /// <param name="feedbackService">The user feedback service.</param> /// <param name="sourceContext">The context to which the gallery belongs.</param> /// <param name="pager">The pages in the gallery.</param> /// <param name="targetChannel">The channel in which the gallery should be posted.</param> /// <param name="criterion">The criterion for reactions.</param> public PaginatedCallback ( InteractiveService interactive, UserFeedbackService feedbackService, SocketCommandContext sourceContext, IPager <T1, T2> pager, [CanBeNull] IMessageChannel targetChannel = null, [CanBeNull] ICriterion <SocketReaction> criterion = null ) { this.Interactive = interactive; this.Feedback = feedbackService; this.Context = sourceContext; this.Criterion = criterion ?? new EmptyCriterion <SocketReaction>(); this.Pager = pager; this.Channel = targetChannel ?? this.Context.Channel; this.PageCount = this.Pager.Pages.Count; }
private static TagBuilder Next(IPager pager, Func <int, string> generatePageUrl, PagerOptions pagerOptions) { var targetPageNumber = pager.CurrentPageIndex + 1; var next = new TagBuilder("a"); AppendHtml(next, string.Format(pagerOptions.TextToNextPage, targetPageNumber)); next.Attributes["rel"] = "next"; next.AddCssClass(pagerOptions.PageClass); if (!pager.HasNextPage) { return(AddToListItem(next, pagerOptions, pagerOptions.ClassToLi + " disabled")); } next.Attributes["href"] = generatePageUrl(targetPageNumber); return(AddToListItem(next, pagerOptions, pagerOptions.ClassToLi)); }
/// <summary> /// 复制Sql生成器 /// </summary> /// <param name="sqlBuilder">源生成器</param> protected void Clone(SqlBuilderBase sqlBuilder) { EntityMatedata = sqlBuilder.EntityMatedata; _parameterManager = sqlBuilder._parameterManager?.Clone(); EntityResolver = sqlBuilder.EntityResolver ?? new EntityResolver(EntityMatedata); AliasRegister = sqlBuilder.AliasRegister?.Clone() ?? new EntityAliasRegister(); _selectClause = sqlBuilder._selectClause?.Clone(this, AliasRegister); _fromClause = sqlBuilder._fromClause?.Clone(this, AliasRegister); _joinClause = sqlBuilder._joinClause?.Clone(this, AliasRegister, _parameterManager); _whereClause = sqlBuilder._whereClause?.Clone(this, AliasRegister, _parameterManager); _groupByClause = sqlBuilder._groupByClause?.Clone(AliasRegister); _orderByClause = sqlBuilder._orderByClause?.Clone(AliasRegister); Pager = sqlBuilder.Pager; OffsetParam = sqlBuilder.OffsetParam; LimitParam = sqlBuilder.LimitParam; UnionItems = sqlBuilder.UnionItems.Select(t => new BuilderItem(t.Name, t.Builder.Clone())).ToList(); CteItems = sqlBuilder.CteItems.Select(t => new BuilderItem(t.Name, t.Builder.Clone())).ToList(); }
/// <summary> /// 分页查询,基础方法,参数:页面大小,页码,主键,查询字段,表达式,排序,数据总条数 /// </summary> /// <param name="pageSize">页面大小</param> /// <param name="pageIndex">页码</param> /// <param name="selectFields">查询字段</param> /// <param name="express">表达式</param> /// <param name="orderBy">排序</param> /// <param name="recordCount">数据总条数</param> /// <returns></returns> public List <TEntity> ExpressionSearch(int pageSize, int pageIndex, string selectFields, List <Expression> express, string orderBy, ref int recordCount) { //获取参数和条件 CoreFrameworkEntity CoreFrameworkEntity = GetParaListAndWhere(express); //条件 string where = CoreFrameworkEntity.Where; //参数列表 List <SqlParameter> listPara = CoreFrameworkEntity.ParaList; selectFields = string.IsNullOrEmpty(selectFields) ? "*" : selectFields;//查询字段 orderBy = string.IsNullOrEmpty(orderBy) ? PrimaryKey : orderBy; IPager page = Pager.Pager.getInstance(); IDataReader sdr = page.GetPagerInfo(TableName, selectFields, pageSize, pageIndex, where, orderBy, ref recordCount, listPara); return(DynamicBuilder <TEntity> .GetList(sdr, columnAttrList)); }
public async Task <IActionResult> UserPost(int page, string username, string categoryName) { IPager <Post> model = null; if (username != null) { var user = await _userManager.FindByNameAsync(username); model = _repository.GetAll().Where(x => x.UserId == user.Id).Include(x => x.User).Include(x => x.Category).OrderByDescending(x => x.PublishDate).ToPagerList(page, 8); } else { var category = _categories.GetAll().Where(x => x.Name == categoryName).FirstOrDefault(); model = _repository.GetAll().Where(x => x.CategoryId == category.Id).Include(x => x.User).Include(x => x.Category).OrderByDescending(x => x.PublishDate).ToPagerList(page, 8); ViewBag.isCategoryPosts = true; } ViewBag.isUserPosts = true; return(View("Index", model)); }
public PagedList(IQueryable <T> items, IPager pager) { if (pager.TotalCount == 0) { pager.TotalCount = items.Count(); } if (pager.PageIndex == 0) { pager.PageIndex = 1; } if (pager.PageSize == 0) { pager.PageSize = 10; } this.Pager = pager; var filtered = items.Skip((Pager.PageIndex - 1) * Pager.PageSize).Take(Pager.PageSize); AddRange(filtered); }
public async Task <IActionResult> Index() { ProjectRepository projectRepo; IPager <Project> pager = null; try { using (DBConnection dbc = new DBConnection(settings.Database.ConnectionString, logger)) { projectRepo = new ProjectRepository(settings, logger, dbc); pager = await projectRepo.FindAllView(new Pager <Project>() { PageNbr = 0, PageSize = 20 }); } } catch (Exception ex) { logger.LogError(ex.Message); } return(View(pager)); }
public static MvcHtmlString PageLinks(this HtmlHelper html, IPager pager, Func<int, string> pageUrl) { StringBuilder result = new StringBuilder(); for (int i = 1; i <= pager.TotalPages; i++) { TagBuilder li = new TagBuilder("li"); TagBuilder tag = new TagBuilder("a"); tag.MergeAttribute("href", pageUrl(i)); tag.InnerHtml = i.ToString(); if (i == pager.CurrentPage) li.AddCssClass("active"); li.InnerHtml = tag.ToString(); result.Append(li.ToString()); } return MvcHtmlString.Create(result.ToString()); }
public RC CloseStatement(IPager.SAVEPOINT op) { Context ctx = Ctx; RC rc = RC.OK; // If statementID is greater than zero, then this Vdbe opened a statement transaction that should be closed here. The only exception // is that an IO error may have occurred, causing an emergency rollback. In this case (db->nStatement==0), and there is nothing to do. if (ctx.Statements != 0 && StatementID != 0) { int savepoint = StatementID - 1; Debug.Assert(op == IPager.SAVEPOINT.ROLLBACK || op == IPager.SAVEPOINT.RELEASE); Debug.Assert(ctx.Statements > 0); Debug.Assert(StatementID == (ctx.Statements + ctx.SavepointsLength)); for (int i = 0; i < ctx.DBs.length; i++) { RC rc2 = RC.OK; Btree bt = ctx.DBs[i].Bt; if (bt != null) { if (op == IPager.SAVEPOINT.ROLLBACK) rc2 = bt.Savepoint(IPager.SAVEPOINT.ROLLBACK, savepoint); if (rc2 == RC.OK) rc2 = bt.Savepoint(IPager.SAVEPOINT.RELEASE, savepoint); if (rc == RC.OK) rc = rc2; } } ctx.Statements--; StatementID = 0; if (rc == RC.OK) { if (op == IPager.SAVEPOINT.ROLLBACK) rc = VTable.Savepoint(ctx, IPager.SAVEPOINT.ROLLBACK, savepoint); if (rc == RC.OK) rc = VTable.Savepoint(ctx, IPager.SAVEPOINT.RELEASE, savepoint); } // If the statement transaction is being rolled back, also restore the database handles deferred constraint counter to the value it had when // the statement transaction was opened. if (op == IPager.SAVEPOINT.ROLLBACK) ctx.DeferredCons = StmtDefCons; } return rc; }
public RC Savepoint(IPager.SAVEPOINT op, int savepoints) { var rc = RC.OK; if (InTrans == TRANS.WRITE) { BtShared bt = Bt; Debug.Assert(op == IPager.SAVEPOINT.RELEASE || op == IPager.SAVEPOINT.ROLLBACK); Debug.Assert(savepoints >= 0 || (savepoints == -1 && op == IPager.SAVEPOINT.ROLLBACK)); Enter(); rc = bt.Pager.Savepoint(op, savepoints); if (rc == RC.OK) { if (savepoints < 0 && (bt.BtsFlags & BTS.INITIALLY_EMPTY) != 0) bt.Pages = 0; rc = newDatabase(bt); bt.Pages = ConvertEx.Get4(bt.Page1.Data, 28); // The database size was written into the offset 28 of the header when the transaction started, so we know that the value at offset // 28 is nonzero. Debug.Assert(bt.Pages > 0); } Leave(); } return rc; }
/// <summary> /// 设置分页 /// </summary> /// <param name="pager">分页对象</param> public ISqlBuilder SetPager( IPager pager ) { Pager = pager; if ( !pager.Order.IsEmpty() ) Order = pager.Order; return this; }
public void TestSetup() { pager = PagerFactory.CreateExport().Value; }
public void SetUp() { _pager = new Pager {TotalItems = 1337, PageSize = 10}; }
public void Register(IPager pager) { _pager = pager; CreateChildControls(); }