3.使用服务器端运行模式实现一个Grid
当你需要访问模板时使用服务器端运行模式的ComponentArt Grid,这种模式实现回传的刷新、分页,排序和数据分组
实现服务器端运行模式的Grid
1.在设计视图,从工具箱拖拽ComponentArt Grid控件到页面,id=“Grid 1 ”
2.在HTML视图,替换现有grid标记为下面的标记。这些设置了服务器端运行模式,含有一层,包含5列.每列绑定在DataSet中的DataTable的字段中
<ComponentArt:Grid ID="Grid1"
CssClass="Grid"
FooterCssClass="GridFooter"
RunningMode="Server"
PagerStyle="Slider"
PagerImagesFolderUrl="images"
PagerTextCssClass="PagerText"
PageSize="18"
ImagesBaseUrl="images"
Width="710" Height="390"
runat="server">
<Levels>
<ComponentArt:GridLevel DataKeyField="PostId">
<Columns>
<ComponentArt:GridColumn DataField="PostId" />
<ComponentArt:GridColumn DataField="Subject" />
<ComponentArt:GridColumn DataField="LastPostDate"
FormatString="MMM dd yyyy, hh:mm tt" />
<ComponentArt:GridColumn DataField="StartedBy" />
<ComponentArt:GridColumn DataField="TotalViews" />
</Columns>
</ComponentArt:GridLevel>
</Levels>
</ComponentArt:Grid>
3.在代码视图,在Load事件,在第一次页面调用时绑定到数据源
[ C# ]
if (!Page.IsPostBack)
{
Grid1.DataSource = buildGridData();
Grid1.DataBind();
}
[ VB.NET ]
If Not IsPostBack Then
Grid1.DataSource = buildGridData()
Grid1.DataBind()
End If
4.在Page_Init事件, 建立和指定服务器端事件委托给PageIndexChanged, SortCommand, NeedRebind, 和NeedDataSource 事件.
[ C# ]
protected void Page_Init(object sender, EventArgs e)
{
Grid1.PageIndexChanged +=
new ComponentArt.Web.UI.Grid.PageIndexChangedEventHandler
(OnPageIndexChanged);
Grid1.SortCommand +=
new ComponentArt.Web.UI.Grid.SortCommandEventHandler
(OnSortCommand);
Grid1.NeedRebind +=
new ComponentArt.Web.UI.Grid.NeedRebindEventHandler
(OnNeedRebind);
Grid1.NeedDataSource +=
new ComponentArt.Web.UI.Grid.NeedDataSourceEventHandler
(OnNeedDataSource);
}
5. 添加处理程序给上述事件.根据表格的要求,这些函数设置新页的索引,获得新的排序语句,刷新从数据库得到的数据或者重绑定到现有数据
[ C# ]
public void OnPageIndexChanged
(object sender, ComponentArt.Web.UI.GridPageIndexChangedEventArgs args)
{
Grid1.CurrentPageIndex = args.NewIndex;
}
public void OnSortCommand
(object sender, ComponentArt.Web.UI.GridSortCommandEventArgs args)
{
Grid1.Sort = args.SortExpression;
}
public void OnNeedDataSource(object sender, EventArgs oArgs)
{
Grid1.DataSource = buildGridData();
}
public void OnNeedRebind(object sender, System.EventArgs oArgs)
{
Grid1.DataBind();
}
6. 添加buildGridData()函数,填充和返回ADO.NET数据集.下面的例子使用简单的Access数据库在/live_examples/common/db/demo.mdb.拷贝demo.mdb到你的项目数据文件夹
[ C# ]
private System.Data.DataSet buildGridData()
{
string conStr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=";
conStr += Server.MapPath("~/App_Data/demo.mdb");
System.Data.OleDb.OleDbConnection dbCon =
new System.Data.OleDb.OleDbConnection(conStr);
dbCon.Open();
string sql = "SELECT * FROM Posts ORDER BY LastPostDate DESC";
System.Data.OleDb.OleDbDataAdapter dbAdapter =
new System.Data.OleDb.OleDbDataAdapter(sql, dbCon);
System.Data.DataSet ds = new System.Data.DataSet();
dbAdapter.Fill(ds);
return ds;
}
7.编译浏览页面