您的位置:首页 > 其它

不使用“DataSourceControl DataSource”的情况下如何分页和排序

2009-01-02 22:54 507 查看
If you set AllowPaging="true" or
AllowSorting="true" on a GridView control without
using a DataSourceControl DataSource (i.e. SqlDataSource,
ObjectDataSource), you will run into the following errors:

When changing the page on the GridView control:

The GridView 'GridViewID' fired event PageIndexChanging which wasn't handled.

When clicking a column name to sort the column on the GridView control:

The GridView 'GridViewID' fired event Sorting which wasn't handled.

As a result of not setting the
DataSourceID property of the GridView to a DataSourceControl
DataSource, you have to add event handlers for sorting and paging.

<asp:GridView ID="gridView" OnPageIndexChanging="gridView_PageIndexChanging" OnSorting="gridView_Sorting" runat="server" />

private string ConvertSortDirectionToSql(SortDirection sortDireciton)
{
string m_SortDirection = String.Empty;

switch (sortDirection)
{
case SortDirection.Ascending:
m_SortDirection = "ASC";
break;

case SortDirection.Descending:
m_SortDirection = "DESC";
break;
}

return m_SortDirection
}

protected void gridView_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
gridView.PageIndex = e.NewPageIndex;
gridView.DataBind();
}

protected void gridView_Sorting(object sender, GridViewSortEventArgs e)
{
DataTable m_DataTable = gridView.DataSource as DataTable;

if (m_DataTable != null)
{
DataView m_DataView = new DataView(m_DataTable);
m_DataView.Sort = e.SortExpression + " " + ConvertSortDirectionToSql(e.SortDirection);

gridView.DataSource = m_DataView;
gridView.DataBind();
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐