首先了解与SmartGrid分页相关的属性:
属性名 |
含义 |
AllowPaging |
设置是否允许分页,默认不允许分页。 |
AllowCustomPaging |
获取或设置指示是否启用自定义分页,默认不启用自定义分页。 |
PageSize |
获取或设置要在 SmartGrid 控件的单页上显示的项数。默认值为10。 |
PagerPosition |
指定访问 SmartGrid 控件中各种页的页导航位置。System.Web.UI.WebControls.PagerPosition类型(枚举),可取值:Bottom、Top、TopAndBottom |
PagerHeight |
获取或设置分页条的高度,默认值是24px。 |
PagerHorizontalAlign |
指定页导航按钮的对齐方式。 |
PagerLinkDisabledStyleName |
分页条上灰化的导航按钮的样式名称,如在显示第一页时,第一页、首页应该是灰化的,默认样式名称是pagerLinkDisabledStyle。 |
PagerStyleName |
分页条的样式名称,该样式主要用来设置分页条Table的样式,默认是pagerStyle。 |
PageCount |
获取或设置显示 SmartGrid 控件中各项所需的总页数。 |
VirtualItemCount |
获取或设置在使用自定义分页时 SmartGrid 控件中的实际项数。 |
如果要实现在SmartGrid控件中分页,必然注意以下几点:
1,必须设置SmartGrid的属性AllowPaging=”True”才允许分页。
2,应在Page_Load事件中绑定数据(不管Page.IsPostBack状态),否则将出现“无效的当前页索引”错误。
如果要实现自定义分页,必须设置AllowCustomPaging=true,并且将记录数赋值给VirtualItemCount属性,可以扩充SmartGrid的PageIndexChanged事件(Page.OnInit事件中声明委托)。
override protected void OnInit(EventArgse)
{
this.SmartGrid1.PageIndexChanged+= new SmartGridPageChangedEventHandler(SmartGrid1_PageIndexChanged);
}
SmartGridPageChangedEventHandler的委托原型:
public delegate void SmartGridPageChangedEventHandler(object source, SmartGridPageChangedEventArgse);
SmartGridSearchEventArgs包含1个属性:
Int NewPageIndex
SmartGridSearchEventArg构造函数:SmartGridPageChangedEventArgs(int newPageIndex)
例:SmartGrid1_PageIndexChanged事件代码
private voidSmartGrid1_PageIndexChanged(object sender,SmartGridPageChangedEventArgs e)
{
ViewState["SmartGridPageIndex"]= e.NewPageIndex.ToString();
LoadData(e.NewPageIndex);
}
例:Page_Load事件代码
this.SmartGrid1.VirtualItemCount = LoadDataCount();//获取记录总数
string pageIndex;
if (ViewState["SmartGridPageIndex"]!= null)
{
pageIndex = ViewState["SmartGridPageIndex"].ToString();
}
else
{
pageIndex = "0";
}
LoadData(Int32.Parse(pageIndex));//装载数据