C# GridView 排序及分页

如果你在GridView控件上设置 AllowPaging="true" or AllowSorting="true" 而没有使用使用数据源控件 DataSource (i.e. SqlDataSource, ObjectDataSource),运行则会出现下列错误:

当你在GridView控件上单击下一页时:

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

当你点击排序时,则回出现:

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

如果你没有设置GridView的DataSourceID 的属性,你必须添加一个操作才可以排序及分页。。



smile.gif  点这里查看下面的例子

None.gif
None.gif
None.gif
ExpandedBlockStart.gifContractedBlock.gif
<% dot.gif @ Page Language="C#"  %>
None.gif
ExpandedBlockStart.gifContractedBlock.gif
<% dot.gif @ Import Namespace="System.Data"  %>
None.gif
ExpandedBlockStart.gifContractedBlock.gif
<% dot.gif @ Import Namespace="System.Data.OleDb"  %>
None.gif
None.gif 
None.gif
ExpandedBlockStart.gifContractedBlock.gif
< script  runat ="server" > dot.gif     
InBlock.gif
InBlock.gif    private 
void PopulatePublishersGridView()
InBlock.gif
ExpandedSubBlockStart.gifContractedSubBlock.gif    
dot.gif{
InBlock.gif
InBlock.gif        string connectionString 
= AccessConnectionString();
InBlock.gif
InBlock.gif        OleDbConnection accessConnection 
= new OleDbConnection(connectionString);
InBlock.gif
InBlock.gif 
InBlock.gif
InBlock.gif        string sqlQuery 
= "SELECT [PubID], [Name], [Company Name], [Address], [City], [State], [Zip], [Telephone], [Fax], [Comments] FROM Publishers ORDER BY [Name] ASC;";
InBlock.gif
InBlock.gif 
InBlock.gif
InBlock.gif        OleDbCommand accessCommand 
= new OleDbCommand(sqlQuery, accessConnection);
InBlock.gif
InBlock.gif 
InBlock.gif
InBlock.gif        OleDbDataAdapter publishersDataAdapter 
= new OleDbDataAdapter(accessCommand);
InBlock.gif
InBlock.gif        DataTable publishersDataTable 
= new DataTable("Publishers");
InBlock.gif
InBlock.gif        publishersDataAdapter.Fill(publishersDataTable);
InBlock.gif
InBlock.gif 
InBlock.gif
InBlock.gif        
int dataTableRowCount = publishersDataTable.Rows.Count;
InBlock.gif
InBlock.gif 
InBlock.gif
InBlock.gif        
if (dataTableRowCount > 0)
InBlock.gif
ExpandedSubBlockStart.gifContractedSubBlock.gif        
dot.gif{
InBlock.gif
InBlock.gif            gridViewPublishers.DataSource 
= publishersDataTable;
InBlock.gif
InBlock.gif            gridViewPublishers.DataBind();
InBlock.gif
ExpandedSubBlockEnd.gif        }

InBlock.gif
ExpandedSubBlockEnd.gif    }

InBlock.gif
InBlock.gif 
InBlock.gif
InBlock.gif    private string AccessConnectionString()
InBlock.gif
ExpandedSubBlockStart.gifContractedSubBlock.gif    
dot.gif{
InBlock.gif
InBlock.gif        string accessDatabasePath 
= Server.MapPath("~/App_Data/biblio.mdb");
InBlock.gif
InBlock.gif        
return String.Format("Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0};", accessDatabasePath);
InBlock.gif
ExpandedSubBlockEnd.gif    }

InBlock.gif
InBlock.gif 
InBlock.gif
InBlock.gif    private string GridViewSortDirection
InBlock.gif
ExpandedSubBlockStart.gifContractedSubBlock.gif    
dot.gif{
InBlock.gif
ExpandedSubBlockStart.gifContractedSubBlock.gif        get 
dot.gifreturn ViewState["SortDirection"] as string ?? "ASC"; }
InBlock.gif
ExpandedSubBlockStart.gifContractedSubBlock.gif        set 
dot.gif{ ViewState["SortDirection"= value; }
InBlock.gif
ExpandedSubBlockEnd.gif    }

InBlock.gif
InBlock.gif 
InBlock.gif
InBlock.gif    private string GridViewSortExpression
InBlock.gif
ExpandedSubBlockStart.gifContractedSubBlock.gif    
dot.gif{
InBlock.gif
ExpandedSubBlockStart.gifContractedSubBlock.gif        get 
dot.gifreturn ViewState["SortExpression"] as string ?? string.Empty; }
InBlock.gif
ExpandedSubBlockStart.gifContractedSubBlock.gif        set 
dot.gif{ ViewState["SortExpression"= value; }
InBlock.gif
ExpandedSubBlockEnd.gif    }

InBlock.gif
InBlock.gif 
InBlock.gif
InBlock.gif    private string GetSortDirection()
InBlock.gif
ExpandedSubBlockStart.gifContractedSubBlock.gif    
dot.gif{
InBlock.gif
InBlock.gif        
switch (GridViewSortDirection)
InBlock.gif
ExpandedSubBlockStart.gifContractedSubBlock.gif        
dot.gif{
InBlock.gif
InBlock.gif            
case "ASC":
InBlock.gif
InBlock.gif                GridViewSortDirection 
= "DESC";
InBlock.gif
InBlock.gif                
break;
InBlock.gif
InBlock.gif 
InBlock.gif
InBlock.gif            
case "DESC":
InBlock.gif
InBlock.gif                GridViewSortDirection 
= "ASC";
InBlock.gif
InBlock.gif                
break;
InBlock.gif
ExpandedSubBlockEnd.gif        }

InBlock.gif
InBlock.gif 
InBlock.gif
InBlock.gif        
return GridViewSortDirection;
InBlock.gif
ExpandedSubBlockEnd.gif    }

InBlock.gif
InBlock.gif 
InBlock.gif
InBlock.gif    protected 
void gridViewPublishers_PageIndexChanging(object sender, GridViewPageEventArgs e)
InBlock.gif
ExpandedSubBlockStart.gifContractedSubBlock.gif    
dot.gif{
InBlock.gif
InBlock.gif        gridViewPublishers.DataSource 
= SortDataTable(gridViewPublishers.DataSource as DataTable, true);
InBlock.gif
InBlock.gif        gridViewPublishers.PageIndex 
= e.NewPageIndex;
InBlock.gif
InBlock.gif        gridViewPublishers.DataBind();
InBlock.gif
ExpandedSubBlockEnd.gif    }

InBlock.gif
InBlock.gif 
InBlock.gif
InBlock.gif    protected DataView SortDataTable(DataTable dataTable, bool isPageIndexChanging)
InBlock.gif
ExpandedSubBlockStart.gifContractedSubBlock.gif    
dot.gif{
InBlock.gif
InBlock.gif        
if (dataTable != null)
InBlock.gif
ExpandedSubBlockStart.gifContractedSubBlock.gif        
dot.gif{
InBlock.gif
InBlock.gif            DataView dataView 
= new DataView(dataTable);
InBlock.gif
InBlock.gif            
if (GridViewSortExpression != string.Empty)
InBlock.gif
ExpandedSubBlockStart.gifContractedSubBlock.gif            
dot.gif{
InBlock.gif
InBlock.gif                
if (isPageIndexChanging)
InBlock.gif
ExpandedSubBlockStart.gifContractedSubBlock.gif                
dot.gif{
InBlock.gif
InBlock.gif                    dataView.Sort 
= string.Format("{0} {1}", GridViewSortExpression, GridViewSortDirection);
InBlock.gif
ExpandedSubBlockEnd.gif                }

InBlock.gif
InBlock.gif                
else
InBlock.gif
ExpandedSubBlockStart.gifContractedSubBlock.gif                
dot.gif{
InBlock.gif
InBlock.gif                    dataView.Sort 
= string.Format("{0} {1}", GridViewSortExpression, GetSortDirection());
InBlock.gif
ExpandedSubBlockEnd.gif                }

InBlock.gif
ExpandedSubBlockEnd.gif            }

InBlock.gif
InBlock.gif            
return dataView;
InBlock.gif
ExpandedSubBlockEnd.gif        }

InBlock.gif
InBlock.gif        
else
InBlock.gif
ExpandedSubBlockStart.gifContractedSubBlock.gif        
dot.gif{
InBlock.gif
InBlock.gif            
return new DataView();
InBlock.gif
ExpandedSubBlockEnd.gif        }

InBlock.gif
ExpandedSubBlockEnd.gif    }

InBlock.gif
InBlock.gif 
InBlock.gif
InBlock.gif    protected 
void gridViewPublishers_Sorting(object sender, GridViewSortEventArgs e)
InBlock.gif
ExpandedSubBlockStart.gifContractedSubBlock.gif    
dot.gif{
InBlock.gif
InBlock.gif        GridViewSortExpression 
= e.SortExpression;
InBlock.gif
InBlock.gif        
int pageIndex = gridViewPublishers.PageIndex;
InBlock.gif
InBlock.gif        gridViewPublishers.DataSource 
= SortDataTable(gridViewPublishers.DataSource as DataTable, false);
InBlock.gif
InBlock.gif        gridViewPublishers.DataBind();
InBlock.gif
InBlock.gif        gridViewPublishers.PageIndex 
= pageIndex;
InBlock.gif
ExpandedSubBlockEnd.gif    }

InBlock.gif
InBlock.gif 
InBlock.gif
InBlock.gif    protected 
void Page_Load(object sender, EventArgs e)
InBlock.gif
ExpandedSubBlockStart.gifContractedSubBlock.gif    
dot.gif{
InBlock.gif
InBlock.gif        PopulatePublishersGridView();
InBlock.gif
ExpandedSubBlockEnd.gif    }

InBlock.gif
InBlock.gif 
ExpandedBlockEnd.gif
None.gif
</ script >
None.gif
None.gif
None.gif 
None.gif
None.gif
<! DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" >
None.gif
None.gif
< html  xmlns ="http://www.w3.org/1999/xhtml" >
None.gif
None.gif
< head  runat ="server" >
None.gif
None.gif    
< title > GridView Sorting/Paging without a DataSourceControl DataSource </ title >
None.gif
None.gif
</ head >
None.gif
None.gif
< body >
None.gif
None.gif    
< form  id ="form"  runat ="server" >
None.gif
None.gif        
< div >
None.gif
None.gif            
< asp:GridView  ID ="gridViewPublishers"  AllowPaging ="true"  AllowSorting ="true"  AutoGenerateColumns ="false"
None.gif
None.gif                EmptyDataText
="No records found"  PagerSettings-Mode ="NumericFirstLast"  PageSize ="25"
None.gif
None.gif                OnPageIndexChanging
="gridViewPublishers_PageIndexChanging"  OnSorting ="gridViewPublishers_Sorting"
None.gif
None.gif                runat
="server" >
None.gif
None.gif                
< AlternatingRowStyle  BackColor ="LightGray"   />
None.gif
None.gif                
< HeaderStyle  BackColor ="Gray"  Font-Bold ="true"  Font-Names ="Verdana"  Font-Size ="Small"   />
None.gif
None.gif                
< PagerStyle  BackColor ="DarkGray"  Font-Names ="Verdana"  Font-Size ="Small"   />
None.gif
None.gif                
< RowStyle  Font-Names ="Verdana"  Font-Size ="Small"   />
None.gif
None.gif                
< Columns >
None.gif
None.gif                    
< asp:BoundField  DataField ="PubID"  HeaderText ="Publisher ID"  SortExpression ="PubID"   />
None.gif
None.gif                    
< asp:BoundField  DataField ="Name"  HeaderText ="Name"  SortExpression ="Name"   />
None.gif
None.gif                    
< asp:BoundField  DataField ="Company Name"  HeaderText ="Company Name"  SortExpression ="Company Name"   />
None.gif
None.gif                    
< asp:BoundField  DataField ="Address"  HeaderText ="Address"  SortExpression ="Address"   />
None.gif
None.gif                    
< asp:BoundField  DataField ="City"  HeaderText ="City"  SortExpression ="City"   />
None.gif
None.gif                    
< asp:BoundField  DataField ="State"  HeaderText ="State"  SortExpression ="State"   />
None.gif
None.gif                    
< asp:BoundField  DataField ="Zip"  HeaderText ="Zip"  SortExpression ="Zip"   />
None.gif
None.gif                    
< asp:BoundField  DataField ="Telephone"  HeaderText ="Telephone"  SortExpression ="Telephone"   />
None.gif
None.gif                    
< asp:BoundField  DataField ="Fax"  HeaderText ="Fax"  SortExpression ="Fax"   />
None.gif
None.gif                    
< asp:BoundField  DataField ="Comments"  HeaderText ="Comments"  SortExpression ="Comments"   />
None.gif
None.gif                
</ Columns >
None.gif
None.gif            
</ asp:GridView >
None.gif
None.gif        
</ div >
None.gif
None.gif    
</ form >
None.gif
None.gif
</ body >
None.gif
None.gif
</ html >

转载于:https://www.cnblogs.com/cygoodyu/archive/2006/12/10/588085.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值