//public int GetPageCount(out int contentNum) //{ // var pageCount = 1; // contentNum = 0;//数据库中实际的内容数目 // if (_dataSet == null) return pageCount; // contentNum = _dataSet.Tables[0].DefaultView.Count; // if (_listInfo.PageNum != 0 && _listInfo.PageNum < contentNum)//需要翻页 // { // pageCount = Convert.ToInt32(Math.Ceiling(Convert.ToDouble(contentNum) / Convert.ToDouble(_listInfo.PageNum)));//需要生成的总页数 // } // return pageCount; //} public string Parse(int totalNum, int currentPageIndex, int pageCount, bool isStatic) { if (isStatic) { var maxPage = _listInfo.MaxPage; if (maxPage == 0) { maxPage = _pageInfo.SiteInfo.Additional.CreateStaticMaxPage; } if (maxPage > 0 && currentPageIndex + 1 > maxPage) { return(ParseDynamic(totalNum, currentPageIndex, pageCount)); } } var parsedContent = string.Empty; _contextInfo.PageItemIndex = currentPageIndex * _listInfo.PageNum; try { if (!string.IsNullOrEmpty(_sqlString)) { //var pageSqlString = DatabaseApi.Instance.GetPageSqlString(SqlString, ListInfo.OrderByString, totalNum, ListInfo.PageNum, currentPageIndex); var pageSqlString = StlDatabaseCache.GetStlPageSqlString(_sqlString, _listInfo.OrderByString, totalNum, _listInfo.PageNum, currentPageIndex); var dataSource = DataProvider.DatabaseDao.GetDataSource(pageSqlString); if (_listInfo.Layout == ELayout.None) { var rptContents = new Repeater(); if (!string.IsNullOrEmpty(_listInfo.HeaderTemplate)) { rptContents.HeaderTemplate = new SeparatorTemplate(_listInfo.HeaderTemplate); } if (!string.IsNullOrEmpty(_listInfo.FooterTemplate)) { rptContents.FooterTemplate = new SeparatorTemplate(_listInfo.FooterTemplate); } if (!string.IsNullOrEmpty(_listInfo.SeparatorTemplate)) { rptContents.SeparatorTemplate = new SeparatorTemplate(_listInfo.SeparatorTemplate); } if (!string.IsNullOrEmpty(_listInfo.AlternatingItemTemplate)) { rptContents.AlternatingItemTemplate = new RepeaterTemplate(_listInfo.AlternatingItemTemplate, _listInfo.SelectedItems, _listInfo.SelectedValues, _listInfo.SeparatorRepeatTemplate, _listInfo.SeparatorRepeat, _pageInfo, EContextType.SqlContent, _contextInfo); } rptContents.ItemTemplate = new RepeaterTemplate(_listInfo.ItemTemplate, _listInfo.SelectedItems, _listInfo.SelectedValues, _listInfo.SeparatorRepeatTemplate, _listInfo.SeparatorRepeat, _pageInfo, EContextType.SqlContent, _contextInfo); rptContents.DataSource = dataSource; rptContents.DataBind(); if (rptContents.Items.Count > 0) { parsedContent = ControlUtils.GetControlRenderHtml(rptContents); } } else { var pdlContents = new ParsedDataList(); //设置显示属性 TemplateUtility.PutListInfoToMyDataList(pdlContents, _listInfo); pdlContents.ItemTemplate = new DataListTemplate(_listInfo.ItemTemplate, _listInfo.SelectedItems, _listInfo.SelectedValues, _listInfo.SeparatorRepeatTemplate, _listInfo.SeparatorRepeat, _pageInfo, EContextType.SqlContent, _contextInfo); if (!string.IsNullOrEmpty(_listInfo.HeaderTemplate)) { pdlContents.HeaderTemplate = new SeparatorTemplate(_listInfo.HeaderTemplate); } if (!string.IsNullOrEmpty(_listInfo.FooterTemplate)) { pdlContents.FooterTemplate = new SeparatorTemplate(_listInfo.FooterTemplate); } if (!string.IsNullOrEmpty(_listInfo.SeparatorTemplate)) { pdlContents.SeparatorTemplate = new SeparatorTemplate(_listInfo.SeparatorTemplate); } if (!string.IsNullOrEmpty(_listInfo.AlternatingItemTemplate)) { pdlContents.AlternatingItemTemplate = new DataListTemplate(_listInfo.AlternatingItemTemplate, _listInfo.SelectedItems, _listInfo.SelectedValues, _listInfo.SeparatorRepeatTemplate, _listInfo.SeparatorRepeat, _pageInfo, EContextType.SqlContent, _contextInfo); } pdlContents.DataSource = dataSource; pdlContents.DataKeyField = ContentAttribute.Id; pdlContents.DataBind(); if (pdlContents.Items.Count > 0) { parsedContent = ControlUtils.GetControlRenderHtml(pdlContents); } } } //if (_dataSet != null) //{ // var dataSource = new PagedDataSource { DataSource = _dataSet.Tables[0].DefaultView }; //分页类 // if (pageCount > 1) // { // dataSource.AllowPaging = true; // dataSource.PageSize = _listInfo.PageNum;//每页显示的项数 // } // else // { // dataSource.AllowPaging = false; // } // dataSource.CurrentPageIndex = currentPageIndex;//当前页的索引 // if (_listInfo.Layout == ELayout.None) // { // var rptContents = new Repeater // { // ItemTemplate = // new RepeaterTemplate(_listInfo.ItemTemplate, _listInfo.SelectedItems, // _listInfo.SelectedValues, _listInfo.SeparatorRepeatTemplate, // _listInfo.SeparatorRepeat, _pageInfo, EContextType.SqlContent, _contextInfo) // }; // if (!string.IsNullOrEmpty(_listInfo.HeaderTemplate)) // { // rptContents.HeaderTemplate = new SeparatorTemplate(_listInfo.HeaderTemplate); // } // if (!string.IsNullOrEmpty(_listInfo.FooterTemplate)) // { // rptContents.FooterTemplate = new SeparatorTemplate(_listInfo.FooterTemplate); // } // if (!string.IsNullOrEmpty(_listInfo.SeparatorTemplate)) // { // rptContents.SeparatorTemplate = new SeparatorTemplate(_listInfo.SeparatorTemplate); // } // if (!string.IsNullOrEmpty(_listInfo.AlternatingItemTemplate)) // { // rptContents.AlternatingItemTemplate = new RepeaterTemplate(_listInfo.AlternatingItemTemplate, _listInfo.SelectedItems, _listInfo.SelectedValues, _listInfo.SeparatorRepeatTemplate, _listInfo.SeparatorRepeat, _pageInfo, EContextType.SqlContent, _contextInfo); // } // rptContents.DataSource = dataSource; // rptContents.DataBind(); // if (rptContents.Items.Count > 0) // { // parsedContent = ControlUtils.GetControlRenderHtml(rptContents); // } // } // else // { // var pdlContents = new ParsedDataList(); // //设置显示属性 // TemplateUtility.PutListInfoToMyDataList(pdlContents, _listInfo); // pdlContents.ItemTemplate = new DataListTemplate(_listInfo.ItemTemplate, _listInfo.SelectedItems, _listInfo.SelectedValues, _listInfo.SeparatorRepeatTemplate, _listInfo.SeparatorRepeat, _pageInfo, EContextType.SqlContent, _contextInfo); // if (!string.IsNullOrEmpty(_listInfo.HeaderTemplate)) // { // pdlContents.HeaderTemplate = new SeparatorTemplate(_listInfo.HeaderTemplate); // } // if (!string.IsNullOrEmpty(_listInfo.FooterTemplate)) // { // pdlContents.FooterTemplate = new SeparatorTemplate(_listInfo.FooterTemplate); // } // if (!string.IsNullOrEmpty(_listInfo.SeparatorTemplate)) // { // pdlContents.SeparatorTemplate = new SeparatorTemplate(_listInfo.SeparatorTemplate); // } // if (!string.IsNullOrEmpty(_listInfo.AlternatingItemTemplate)) // { // pdlContents.AlternatingItemTemplate = new DataListTemplate(_listInfo.AlternatingItemTemplate, _listInfo.SelectedItems, _listInfo.SelectedValues, _listInfo.SeparatorRepeatTemplate, _listInfo.SeparatorRepeat, _pageInfo, EContextType.SqlContent, _contextInfo); // } // pdlContents.DataSource = dataSource; // pdlContents.DataBind(); // if (pdlContents.Items.Count > 0) // { // parsedContent = ControlUtils.GetControlRenderHtml(pdlContents); // } // } //} } catch (Exception ex) { parsedContent = LogUtils.AddStlErrorLog(_pageInfo, ElementName, _stlPageSqlContentsElement, ex); } //还原翻页为0,使得其他列表能够正确解析ItemIndex _contextInfo.PageItemIndex = 0; return(parsedContent); }
public string Parse(int totalNum, int currentPageIndex, int pageCount, bool isStatic) { if (isStatic) { var maxPage = ListInfo.MaxPage; if (maxPage == 0) { maxPage = _pageInfo.SiteInfo.Additional.CreateStaticMaxPage; } if (maxPage > 0 && currentPageIndex + 1 > maxPage) { return(ParseDynamic(totalNum, currentPageIndex, pageCount)); } } var parsedContent = string.Empty; _contextInfo.PageItemIndex = currentPageIndex * ListInfo.PageNum; try { if (!string.IsNullOrEmpty(SqlString)) { //var pageSqlString = DataProvider.DatabaseDao.GetPageSqlString(SqlString, ListInfo.OrderByString, totalNum, ListInfo.PageNum, currentPageIndex); var pageSqlString = StlDatabaseCache.GetStlPageSqlString(SqlString, ListInfo.OrderByString, totalNum, ListInfo.PageNum, currentPageIndex); var datasource = DataProvider.DatabaseDao.GetDataSource(pageSqlString); if (ListInfo.Layout == ELayout.None) { var rptContents = new Repeater(); if (!string.IsNullOrEmpty(ListInfo.HeaderTemplate)) { rptContents.HeaderTemplate = new SeparatorTemplate(ListInfo.HeaderTemplate); } if (!string.IsNullOrEmpty(ListInfo.FooterTemplate)) { rptContents.FooterTemplate = new SeparatorTemplate(ListInfo.FooterTemplate); } if (!string.IsNullOrEmpty(ListInfo.SeparatorTemplate)) { rptContents.SeparatorTemplate = new SeparatorTemplate(ListInfo.SeparatorTemplate); } if (!string.IsNullOrEmpty(ListInfo.AlternatingItemTemplate)) { rptContents.AlternatingItemTemplate = new RepeaterTemplate(ListInfo.AlternatingItemTemplate, ListInfo.SelectedItems, ListInfo.SelectedValues, ListInfo.SeparatorRepeatTemplate, ListInfo.SeparatorRepeat, _pageInfo, EContextType.Content, _contextInfo); } rptContents.ItemTemplate = new RepeaterTemplate(ListInfo.ItemTemplate, ListInfo.SelectedItems, ListInfo.SelectedValues, ListInfo.SeparatorRepeatTemplate, ListInfo.SeparatorRepeat, _pageInfo, EContextType.Content, _contextInfo); rptContents.DataSource = datasource; rptContents.DataBind(); if (rptContents.Items.Count > 0) { parsedContent = ControlUtils.GetControlRenderHtml(rptContents); } } else { var pdlContents = new ParsedDataList(); //设置显示属性 TemplateUtility.PutListInfoToMyDataList(pdlContents, ListInfo); pdlContents.ItemTemplate = new DataListTemplate(ListInfo.ItemTemplate, ListInfo.SelectedItems, ListInfo.SelectedValues, ListInfo.SeparatorRepeatTemplate, ListInfo.SeparatorRepeat, _pageInfo, EContextType.Content, _contextInfo); if (!string.IsNullOrEmpty(ListInfo.HeaderTemplate)) { pdlContents.HeaderTemplate = new SeparatorTemplate(ListInfo.HeaderTemplate); } if (!string.IsNullOrEmpty(ListInfo.FooterTemplate)) { pdlContents.FooterTemplate = new SeparatorTemplate(ListInfo.FooterTemplate); } if (!string.IsNullOrEmpty(ListInfo.SeparatorTemplate)) { pdlContents.SeparatorTemplate = new SeparatorTemplate(ListInfo.SeparatorTemplate); } if (!string.IsNullOrEmpty(ListInfo.AlternatingItemTemplate)) { pdlContents.AlternatingItemTemplate = new DataListTemplate(ListInfo.AlternatingItemTemplate, ListInfo.SelectedItems, ListInfo.SelectedValues, ListInfo.SeparatorRepeatTemplate, ListInfo.SeparatorRepeat, _pageInfo, EContextType.Content, _contextInfo); } pdlContents.DataSource = datasource; pdlContents.DataKeyField = ContentAttribute.Id; pdlContents.DataBind(); if (pdlContents.Items.Count > 0) { parsedContent = ControlUtils.GetControlRenderHtml(pdlContents); } } } } catch (Exception ex) { parsedContent = LogUtils.AddStlErrorLog(_pageInfo, ElementName, _stlPageContentsElement, ex); } //还原翻页为0,使得其他列表能够正确解析ItemIndex _contextInfo.PageItemIndex = 0; return(parsedContent); }