马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
源代码保护方面其实现在考虑得没那么多了..NET也可以反编译.ASP写得复杂的话别人能看得懂的话.他也有能力自己写了.这方面担心的倒不太多.纵观现在网上可以下载的那些所谓BBS还有什么网站等等的源代码分页尽人皆知,ASP.Net中给我们供应了三个数据控件--DataGrid,Repeater,DataList。在这三个控件中,DataGrid控件的功效最壮大,Repeater控件最忠厚于模版原样,DataList控件则兼而有之。
DataGrid控件太着名了,以是之前用的讲的也良多,Repeater功效太少,没有甚么好讲的。这里次要是讲一讲DataList控件。
DataList控件实在功效也很壮大,他撑持选择、编纂,完成的办法也很复杂,不外最使人头疼的就是它不像DataGrid控件一样内置了分页的功效,这么好的一个控件居然不克不及分页!!!
的确是一个很让人头疼的事变。
不外,只是DataList没有供应内置的分页功效,可是其实不暗示,我们不克不及利用DataList控件来完成分页,既然它不给我分页功效,那只好本人下手了。
上面是全体原代码,实在用到的办法和PHP中的分页差未几,只是这里用的是DataAdapter与DataSet组合,而不是PHP中的SQL语句间接弄定。
<%@PageLanguage="C#"%>
<%@ImportNamespace="System.Data"%>
<%@ImportNamespace="System.Data.OleDb"%>
<SCRIPTlanguage=C#Runat="Server">
/*
CreateBy飞刀
http://www.aspcn.com
2001-7-2501:44
Support.NetFrameworkBeta2
DataList只要一个数据列,能够有多个按钮列
*/
OleDbConnectionMyConn;
intPageSize,RecordCount,PageCount,CurrentPage;
publicvoidPage_Load(Objectsrc,EventArgse)
{
//设定PageSize
PageSize=3;
//毗连语句
stringMyConnString="Provider=Microsoft.Jet.OLEDB.4.0;DataSource="+Server.MapPath(".")+"..imagesdb1.mdb;";
MyConn=newOleDbConnection(MyConnString);
MyConn.Open();
//第一次哀求实行
if(!Page.IsPostBack)
{
ListBind();
CurrentPage=0;
ViewState["PageIndex"]=0;
//盘算统共有几纪录
RecordCount=CalculateRecord();
lblRecordCount.Text=RecordCount.ToString();
//盘算统共有几页
PageCount=RecordCount/PageSize;
lblPageCount.Text=PageCount.ToString();
ViewState["PageCount"]=PageCount;
}
}
//盘算统共有几笔记录
publicintCalculateRecord()
{
intintCount;
stringstrCount="selectcount(*)ascofromScore";
OleDbCommandMyComm=newOleDbCommand(strCount,MyConn);
OleDbDataReaderdr=MyComm.ExecuteReader();
if(dr.Read())
{
intCount=Int32.Parse(dr["co"].ToString());
}
else
{
intCount=0;
}
dr.Close();
returnintCount;
}
ICollectionCreateSource()
{
intStartIndex;
//设定导进的起终地点
StartIndex=CurrentPage*PageSize;
stringstrSel="select*fromScore";
DataSetds=newDataSet();
OleDbDataAdapterMyAdapter=newOleDbDataAdapter(strSel,MyConn);
MyAdapter.Fill(ds,StartIndex,PageSize,"Score");
returnds.Tables["Score"].DefaultView;
}
publicvoidListBind()
{
score.DataSource=CreateSource();
score.DataBind();
lbnNextPage.Enabled=true;
lbnPrevPage.Enabled=true;
if(CurrentPage==(PageCount-1))lbnNextPage.Enabled=false;
if(CurrentPage==0)lbnPrevPage.Enabled=false;
lblCurrentPage.Text=(CurrentPage+1).ToString();
}
publicvoidPage_OnClick(Objectsender,CommandEventArgse)
{
CurrentPage=(int)ViewState["PageIndex"];
PageCount=(int)ViewState["PageCount"];
stringcmd=e.CommandName;
//判别cmd,以判断翻页偏向
switch(cmd)
{
case"next":
if(CurrentPage<(PageCount-1))CurrentPage++;
break;
case"prev":
if(CurrentPage>0)CurrentPage--;
break;
}
ViewState["PageIndex"]=CurrentPage;
ListBind();
}
</SCRIPT>
<FORMid=Form1runat="server">
共有<asp:Labelid=lblRecordCountrunat="server"ForeColor="red"></asp:Label>笔记录
以后为<asp:Labelid=lblCurrentPagerunat="server"ForeColor="red"></asp:Label>/<asp:Labelid=lblPageCountrunat="server"ForeColor="red"></asp:Label>页
<asp:DataListid=scorerunat="server"EditItemStyle-BackColor="yellow"AlternatingItemStyle-BackColor="Gainsboro"HeaderStyle-BackColor="#aaaadd">
<ITEMTEMPLATE>
<%#DataBinder.Eval(Container.DataItem,"dcid")%><%#DataBinder.Eval(Container.DataItem,"title")%>
<asp:LinkButtonid=Linkbutton1runat="server"CommandName="edit"Text="傻瓜"></asp:LinkButton>
<asp:LinkButtonid=btnSelectrunat="server"CommandName="</p>对用户来说可预见费用、节约费用,可以做到花少钱办大事。由于省去了购买软件和硬件等的前期费用,用户可以租用较高级的应用软件。ASP的收费是根据软件的类型、客制化程度、用户数量、服务期限来定的,对客户来说这笔费用是可以预见的。方便于客户应用软件的升级。 |