ASP.NET网站制作之Asp.NET的DataGrid排序,挑选和分页
简单的说:.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)写到了页面中。在软件开辟中,我们一样平常把会见数据的部分写成数据层,页面挪用数据层失掉数据,如许逻辑明晰,修正和保护都很便利。如果英语好,口才好,加上女孩子的优势说不定有机会进去做做别的工具) 碰到复杂点的问题都不知道能不能解决,现在有点实力的公司都选择自已在开源的基础上做开发。但没听说过有人在IIS上做改进的,windows、sqlserver集群方面的应用也很少见。 是指转换后的Servlet程序代码的行数。这给调试代码带来一定困难。所以,在排除错误时,可以采取分段排除的方法(在可能出错的代码前后输出一些字符串,用字符串是否被输出来确定代码段从哪里开始出错)。 在调试JSP代码时,如果程序出错,JSP服务器会返回出错信息,并在浏览器中显示。这时,由于JSP是先被转换成Servlet后再运行的,所以,浏览器中所显示的代码出错的行数并不是JSP源代码的行数。 当然我们在选择Asp.net主机是,除了要考虑服务提供商在版本是否是实时更新以外,机房的环境和配置也是非常重要的,通常选择骨干网的机房,在速度和稳定性上会非常有保证。 主流网站开发语言之JSP:JSP和Servlet要放在一起讲,是因为它们都是Sun公司的J2EE(Java2platformEnterpriseEdition)应用体系中的一部分。 同时也感谢博客园给我们这个平台,也感谢博客园的编辑们做成专题引来这么多高人指点。 比如封装性、继承性、多态性等等,这就解决了刚才谈到的ASP的那些弱点。封装性使得代码逻辑清晰,易于管理,并且应用到ASP.Net上就可以使业务逻辑和Html页面分离,这样无论页面原型如何改变。
页:
[1]