简单生活 发表于 2015-1-16 22:31:47

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)写到了页面中。在软件开辟中,我们一样平常把会见数据的部分写成数据层,页面挪用数据层失掉数据,如许逻辑明晰,修正和保护都很便利。如果英语好,口才好,加上女孩子的优势说不定有机会进去做做别的工具)

柔情似水 发表于 2015-1-18 23:07:46

碰到复杂点的问题都不知道能不能解决,现在有点实力的公司都选择自已在开源的基础上做开发。但没听说过有人在IIS上做改进的,windows、sqlserver集群方面的应用也很少见。

若相依 发表于 2015-1-23 22:51:44

是指转换后的Servlet程序代码的行数。这给调试代码带来一定困难。所以,在排除错误时,可以采取分段排除的方法(在可能出错的代码前后输出一些字符串,用字符串是否被输出来确定代码段从哪里开始出错)。

莫相离 发表于 2015-1-31 20:29:13

在调试JSP代码时,如果程序出错,JSP服务器会返回出错信息,并在浏览器中显示。这时,由于JSP是先被转换成Servlet后再运行的,所以,浏览器中所显示的代码出错的行数并不是JSP源代码的行数。

第二个灵魂 发表于 2015-2-6 22:37:49

当然我们在选择Asp.net主机是,除了要考虑服务提供商在版本是否是实时更新以外,机房的环境和配置也是非常重要的,通常选择骨干网的机房,在速度和稳定性上会非常有保证。

只想知道 发表于 2015-2-19 00:35:01

主流网站开发语言之JSP:JSP和Servlet要放在一起讲,是因为它们都是Sun公司的J2EE(Java2platformEnterpriseEdition)应用体系中的一部分。

admin 发表于 2015-3-6 11:48:05

同时也感谢博客园给我们这个平台,也感谢博客园的编辑们做成专题引来这么多高人指点。

冷月葬花魂 发表于 2015-3-13 00:31:05

比如封装性、继承性、多态性等等,这就解决了刚才谈到的ASP的那些弱点。封装性使得代码逻辑清晰,易于管理,并且应用到ASP.Net上就可以使业务逻辑和Html页面分离,这样无论页面原型如何改变。
页: [1]
查看完整版本: ASP.NET网站制作之Asp.NET的DataGrid排序,挑选和分页