|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
简单的说:.net只有微软一家在做的,微软也不允许别人跟他做相同的工具,所以他就把需要的工具全部封装在.net的平台上了;而java是公开了。asp.net|datagrid|分页|排序
DataGrid是Asp.NET中的一个主要的控件,常常我们都将DataGrid做成可分页的和可排序的,偶然还必要加上选择功效。这些都是常常必要用到的办法,实际上是对照复杂的。
计划思绪:
为了便利起见,我们毗连SQLServer2000的NorthWind数据库的Orders表,从数据库里失掉此表的数据视图。使用DataGrid的SortCommand事务完成排序。用一个模板列加上CheckBox控件完成选择。可用DataGrid的属性天生器的“分页”选项大概本人修正HTML完成分页。
HTML:
增加一个DataGrid,定名为dgOrder。
增加了一个模板列,模板列里放一个名为Cb的CheckBox控件。此列用来完成选择
为要排序的每一个列加上排序表达式SortExpression。
使用列的DataFormatString来格局化列,象DataFormatString="{0:d}"显现日期格局。
设置PageSize="15"每页显现15行数据,AllowPaging="True"为同意分页。
ield="orderid"SortExpression="orderid"HeaderText="ID">
背景类增加以下代码:
ImportsSystem.Data.SqlClient
失掉数据视图,参数为要排序的列
PrivateFunctionGetDv(ByValstrSortAsString)AsDataView
界说数据库毗连
DimdvAsDataView
DimCNAsNewSqlConnection()
Try
初始化毗连字符串
CN.ConnectionString="datasource=pmserver;initialcatalog=Northwind;persistsecurityinfo=False;userid=sa;Password=sa;"
CN.Open()
从NorthWind失掉orders表的数据
DimadpAsSqlDataAdapter=NewSqlDataAdapter("select*fromorders",CN)
DimdsAsNewDataSet()
adp.Fill(ds)
失掉数据视图
dv=ds.Tables(0).DefaultView
CatchexAsException
#IfDEBUGThen
Session("Error")=ex.ToString()
Response.Redirect("../error.aspx")跳转程序的大众毛病处置页面
#EndIf
Finally
封闭毗连
CN.Close()
EndTry
排序
dv.Sort=strSort
Returndv
EndFunction
PrivateSubPage_Load(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesMyBase.Load
IfNotIsPostBackThen
ViewState("strSort")="orderid"
dgOrder.DataSource=GetDv(ViewState("strSort").ToString())
dgOrder.DataBind()
EndIf
EndSub
排序
PrivateSubdgOrder_SortCommand(ByValsourceAsObject,ByValeAsSystem.Web.UI.WebControls.DataGridSortCommandEventArgs)HandlesdgOrder.SortCommand
dgOrder.CurrentPageIndex=0
失掉排序的列
ViewState("strSort")=e.SortExpression.ToString()
dgOrder.DataSource=GetDv(ViewState("strSort").ToString())
dgOrder.DataBind()
EndSub
分页
PrivateSubdgOrder_PageIndexChanged(ByValsourceAsObject,ByValeAsSystem.Web.UI.WebControls.DataGridPageChangedEventArgs)HandlesdgOrder.PageIndexChanged
失掉分页的页号
dgOrder.CurrentPageIndex=e.NewPageIndex
dgOrder.DataSource=GetDv(ViewState("strSort").ToString())
dgOrder.DataBind()
EndSub
运转了局以下图所示:(点击列标头能够排序)
为了晓得用户选择的是哪些纪录,我们能够使用DataGridItem的FindControl失掉CheckBox的值,我们来增加一个按钮,再写以下代码:
PrivateSubButton1_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesButton1.Click
DimitemAsDataGridItem
DimStrScriptAsString
StrScript=""
RegisterClientScriptBlock("体系动静",StrScript)
EndSub
下面的代码RegisterClientScriptBlock增加JavaScript剧本弹出对话框。(实在VbScript的对话框比JavaScript的对话框多更多的显现和把持体例,但Netscape的扫瞄器不撑持,人人可依据响应的项目在程序里选择用哪一种剧本)。
总结:
DataGrid是我们经常使用的Web控件,偶然我们还能够和DataList夹杂利用,经由过程修正HTML页,能够到达好的页面效果。下面只是一个例子,为了便于分明全部历程,我把数据会见部分(SQL)写到了页面中。在软件开辟中,我们一样平常把会见数据的部分写成数据层,页面挪用数据层失掉数据,如许逻辑明晰,修正和保护都很便利。如果英语好,口才好,加上女孩子的优势说不定有机会进去做做别的工具) |
|