仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1195|回复: 8
打印 上一主题 下一主题

[学习教程] ASP.NET网站制作之ASP.NET技能:DataGrid传统分页体例

[复制链接]
灵魂腐蚀 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 22:30:48 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
我觉得这个学习方法很重要。初学者应该跟我一样有同样一个毛病。那就是急于求成。很想就自己做出个小小的系统来。可真要动手,却又茫然而不知所措。为什么会这样呢?因为我们没有耐心去学习基础知识。写根本看不到什么效果的测试代码。此分页体例与传统ASP分页体例相仿。
DataGridPage.aspx
以下为援用的内容:
<%@Pagelanguage="c#"Codebehind="DataGridPage.aspx.cs"AutoEventWireup="false"Inherits="netCRM.DataGridPage"%>
<!DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.0Transitional//EN">
<HTML>
<HEAD>
<title>DataGridPage</title>
<metaname="GENERATOR"Content="MicrosoftVisualStudio.NET7.1">
<metaname="CODE_LANGUAGE"Content="C#">
<metaname="vs_defaultClientScript"content="JavaScript">
<metaname="vs_targetSchema"content="http://schemas.microsoft.com/intellisense/ie5">
</HEAD>
<bodyMS_POSITIONING="GridLayout">
<formid="Form1"method="post"runat="server">
<asp:datagridid="DataGrid1"runat="server"AlternatingItemStyle-BackColor="#eeeeee"HeaderStyle-BackColor="#aaaadd"
Font-Size="8pt"Font-Name="Verdana"CellPadding="3"BorderWidth="1px"BorderColor="Black"
PagerStyle-HorizontalAlign="Right"PagerStyle-Mode="NumericPages"
PageSize="5"Font-Names="Verdana"Width="100%">
<AlternatingItemStyleBackColor="#EEEEEE"></AlternatingItemStyle>
<HeaderStyleBackColor="#AAAADD"></HeaderStyle>
<PagerStyleHorizontalAlign="Right"Mode="NumericPages"></PagerStyle>
</asp:datagrid>
</form>
<TABLEcellSpacing="0"cellPadding="1"width="100%"bgColor="#aaaadd"border="0">
<TBODY>
<TR>
<TD>
<TABLEcellSpacing="0"cellPadding="4"width="100%"bgColor="#fef8e2"border="0">
<TBODY>
<TR>
<TDclass="M"noWrapalign="center"><asp:Literalid="Literal1"runat="server"></asp:Literal></TD>
</TR>
<TR>
<TDclass="C"noWrapalign="center"><asp:Literalid="Literal2"runat="server"></asp:Literal></TD>
</TR>
</TBODY>
</TABLE>
</TD>
</TR>
</TBODY>
</TABLE>
</body>
</HTML>
DataGridPage.aspx.cs
以下为援用的内容:
usingSystem;
usingSystem.Collections;
usingSystem.ComponentModel;
usingSystem.Data;
usingSystem.Data.SqlClient;
usingSystem.Drawing;
usingSystem.Web;
usingSystem.Web.SessionState;
usingSystem.Web.UI;
usingSystem.Web.UI.WebControls;
usingSystem.Web.UI.HtmlControls;
namespacenetCRM
{
///<summary>
///DataGridPage的择要申明。
///</summary>
publicclassDataGridPage:System.Web.UI.Page
{
protectedSystem.Web.UI.WebControls.LiteralLiteral1;
protectedSystem.Web.UI.WebControls.LiteralLiteral2;
protectedSystem.Web.UI.WebControls.DataGridDataGrid1;
privatevoidPage_Load(objectsender,System.EventArgse)
{
//在此处安排用户代码以初始化页面
if(!IsPostBack)
{
BindGrid();
}
}
privatevoidBindGrid()
{
stringconnstring="Server=.;Database=NorthWind;UserId=sa;Password=;";
stringsql="Select*fromOrders";
SqlConnectionconn=newSqlConnection(connstring);
conn.Open();
DataSetds=newDataSet();
SqlDataAdaptersqlAdapter=newSqlDataAdapter(sql,conn);
sqlAdapter.Fill(ds,"users");
DataViewdataview=newDataView();
dataview=ds.Tables[0].DefaultView;
DataGrid1.DataSource=ds.Tables[0].DefaultView;
DataGrid1.DataBind();
stringcPage;
intpageSize=10;
intcurrentPage;
intpageCount;
intnumResults=0;
if(Request.QueryString["page"]==null)
{
cPage="1";
}
else
{
cPage=Request.QueryString["page"].ToString();
}
try
{
currentPage=Int32.Parse(cPage);
}
catch
{
currentPage=1;
}
numResults=0;
intstart=(int)((currentPage-1)*pageSize);
intto=(int)(currentPage*pageSize);
if(start<=0)start=0;
numResults=dataview.Count;
inta1=0;
pageCount=Math.DivRem(numResults,pageSize,outa1);
if(a1>0)
{
pageCount++;
}
if(currentPage>pageCount||currentPage<=0)
{
currentPage=1;
}
if(currentPage==pageCount)
{
to=dataview.Count;
}
//CreateoneDataTablewithonecolumn.
DataTablemyTable=newDataTable("myTable");
myTable=dataview.Table.Clone();
//DataColumncolItem1=newDataColumn("name",Type.GetType("System.String"));
//DataColumncolItem2=newDataColumn("types",Type.GetType("System.String"));
//DataColumncolItem3=newDataColumn("vendor",Type.GetType("System.String"));
//myTable.Columns.Add(colItem1);
//myTable.Columns.Add(colItem2);
//myTable.Columns.Add(colItem3);
//addrow
DataRowNewRow;
for(inti=start;i<numResults;i++)
{
if(i<to)
{
NewRow=myTable.NewRow();
for(intk=0;k<dataview.Table.Columns.Count;k++)
{
NewRow[k]=dataview.Table.Rows[k];
}
myTable.Rows.Add(NewRow);
}
}
myTable.AcceptChanges();
DataViewresultDataview=newDataView(myTable);
DataGrid1.DataSource=resultDataview;
DataGrid1.DataBind();
///<summary>
///天生页导航条。
///</summary>
stringstrNav="";
intendpage;
if(currentPage>1)
{
strNav+="<ahref=?page="+(currentPage-1).ToString()+">上一页</a>";
}
if(currentPage>11)
{
strNav+="<ahref=?page=1>1</a>...";
}
if(pageCount>currentPage+10)
{
endpage=currentPage+10;
}
else
{
endpage=pageCount;
}
for(inti=currentPage-10;i<endpage+1;i++)
{
if(i>=1)
{
if(i==currentPage)
{
strNav+="<fontcolor=#990000><strong>"+i.ToString()+"</strong></font>";
}
else
{
strNav+="<ahref=?page="+i.ToString()+">"+i.ToString()+"</a>";
}
}
}
if((currentPage+10)<pageCount)
{
strNav+="...<ahref=?page="+pageCount.ToString()+">"+pageCount.ToString()+"</a>";
}
if(currentPage<pageCount)
{
strNav+="<ahref=?page="+(currentPage+1).ToString()+">下一页</a>";
}
Literal1.Text=strNav;
Literal2.Text="共"+numResults.ToString()+"条供给信息,以后显现第"+
(start+1).ToString()+"-"+to.ToString()+"条,共"+pageCount.ToString()+"页";
}
#regionWeb窗体计划器天生的代码
overrideprotectedvoidOnInit(EventArgse)
{
//
//CODEGEN:该挪用是ASP.NETWeb窗体计划器所必须的。
//
InitializeComponent();
base.OnInit(e);
}
///<summary>
///计划器撑持所需的办法-不要利用代码编纂器修正
///此办法的内容。
///</summary>
privatevoidInitializeComponent()
{
this.Load+=newSystem.EventHandler(this.Page_Load);
}
#endregion
}
}

我感觉可以顶到50楼,出乎意料的是大家居然纷纷写出自己的博文,还被编辑做成了专题,置于首页头条。
活着的死人 该用户已被删除
沙发
发表于 2015-1-19 15:55:46 | 只看该作者
Servlet却在响应第一个请求的时候被载入,一旦Servlet被载入,便处于已执行状态。对于以后其他用户的请求,它并不打开进程,而是打开一个线程(Thread),将结果发送给客户。由于线程与线程之间可以通过生成自己的父线程(ParentThread)来实现资源共享,这样就减轻了服务器的负担,所以,JavaServlet可以用来做大规模的应用服务。
板凳
发表于 2015-1-25 22:06:18 | 只看该作者
我的意思是.net好用,从功能上来说比JAVA强还是很明显的。
透明 该用户已被删除
地板
发表于 2015-2-4 08:07:18 | 只看该作者
提供基于组件、事件驱动的可编程网络表单,大大简化了编程。还可以用ASP.NET建立网络服务。
只想知道 该用户已被删除
5#
发表于 2015-2-9 19:51:29 | 只看该作者
asp.net空间的支持有:ASP.NET1.1/虚拟目录/MicrosoftFrontPage2000扩展/CDONTS,同时他的网站上也提供了Asp.net的使用详解和程序源代码,相信对使用ASP.NET编程的程序员来说会非常有用哦!
简单生活 该用户已被删除
6#
发表于 2015-2-27 19:47:42 | 只看该作者
它可通过内置的组件实现更强大的功能,如使用A-DO可以轻松地访问数据库。
分手快乐 该用户已被删除
7#
发表于 2015-3-9 11:37:04 | 只看该作者
ASP.net的速度是ASP不能比拟的。ASP.net是编译语言,所以,当第一次加载的时候,它会把所有的程序进行编译(其中包括worker进程,还有对语法进行编译,形成一个程序集),当程序编译后,执行速度几乎为0。
再见西城 该用户已被删除
8#
发表于 2015-3-16 22:17:47 | 只看该作者
众所周知,Windows以易用而出名,也因此占据不少的服务器市场。
蒙在股里 该用户已被删除
9#
发表于 2015-3-23 05:34:46 | 只看该作者
逐步缩小出错代码段的范围,最终确定错误代码的位置。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-12-23 20:52

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表