灵魂腐蚀 发表于 2015-1-16 22:30:48

ASP.NET网站制作之ASP.NET技能:DataGrid传统分页体例

我觉得这个学习方法很重要。初学者应该跟我一样有同样一个毛病。那就是急于求成。很想就自己做出个小小的系统来。可真要动手,却又茫然而不知所措。为什么会这样呢?因为我们没有耐心去学习基础知识。写根本看不到什么效果的测试代码。此分页体例与传统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.DefaultView;
DataGrid1.DataSource=ds.Tables.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=dataview.Table.Rows;
}
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建立网络服务。

只想知道 发表于 2015-2-9 19:51:29

asp.net空间的支持有:ASP.NET1.1/虚拟目录/MicrosoftFrontPage2000扩展/CDONTS,同时他的网站上也提供了Asp.net的使用详解和程序源代码,相信对使用ASP.NET编程的程序员来说会非常有用哦!

简单生活 发表于 2015-2-27 19:47:42

它可通过内置的组件实现更强大的功能,如使用A-DO可以轻松地访问数据库。

分手快乐 发表于 2015-3-9 11:37:04

ASP.net的速度是ASP不能比拟的。ASP.net是编译语言,所以,当第一次加载的时候,它会把所有的程序进行编译(其中包括worker进程,还有对语法进行编译,形成一个程序集),当程序编译后,执行速度几乎为0。

再见西城 发表于 2015-3-16 22:17:47

众所周知,Windows以易用而出名,也因此占据不少的服务器市场。

蒙在股里 发表于 2015-3-23 05:34:46

逐步缩小出错代码段的范围,最终确定错误代码的位置。
页: [1]
查看完整版本: ASP.NET网站制作之ASP.NET技能:DataGrid传统分页体例