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  点这里查看下面的例子

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<script runat="server">    
None.gif
None.gif    
private void PopulatePublishersGridView()
None.gif
ExpandedBlockStart.gifContractedBlock.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
ExpandedBlockEnd.gif    }

None.gif
None.gif 
None.gif
None.gif    
private string AccessConnectionString()
None.gif
ExpandedBlockStart.gifContractedBlock.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
ExpandedBlockEnd.gif    }

None.gif
None.gif 
None.gif
None.gif    
private string GridViewSortDirection
None.gif
ExpandedBlockStart.gifContractedBlock.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
ExpandedBlockEnd.gif    }

None.gif
None.gif 
None.gif
None.gif    
private string GridViewSortExpression
None.gif
ExpandedBlockStart.gifContractedBlock.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
ExpandedBlockEnd.gif    }

None.gif
None.gif 
None.gif
None.gif    
private string GetSortDirection()
None.gif
ExpandedBlockStart.gifContractedBlock.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
ExpandedBlockEnd.gif    }

None.gif
None.gif 
None.gif
None.gif    
protected void gridViewPublishers_PageIndexChanging(object sender, GridViewPageEventArgs e)
None.gif
ExpandedBlockStart.gifContractedBlock.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
ExpandedBlockEnd.gif    }

None.gif
None.gif 
None.gif
None.gif    
protected DataView SortDataTable(DataTable dataTable, bool isPageIndexChanging)
None.gif
ExpandedBlockStart.gifContractedBlock.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
ExpandedBlockEnd.gif    }

None.gif
None.gif 
None.gif
None.gif    
protected void gridViewPublishers_Sorting(object sender, GridViewSortEventArgs e)
None.gif
ExpandedBlockStart.gifContractedBlock.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
ExpandedBlockEnd.gif    }

None.gif
None.gif 
None.gif
None.gif    
protected void Page_Load(object sender, EventArgs e)
None.gif
ExpandedBlockStart.gifContractedBlock.gif    
dot.gif{
InBlock.gif
InBlock.gif        PopulatePublishersGridView();
InBlock.gif
ExpandedBlockEnd.gif    }

None.gif
None.gif 
None.gif
None.gif
</script>
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/xiongeee/archive/2006/11/29/575904.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值