当前位置: 首页 > 图文教程 > 网络编程 > ASP > 使用纯粹的asp+语言制作的栏目管理(二)

ASP
asp实现取得数组中的最大值的代码
asp 将日期格式化为需要的格式
asp 下产生任意位数随机密码的代码
asp下返回以千分位显示数字格式化的数值
asp重定向页面的方法总结
asp下去除数组中重复的项的方法
asp下实现 重新排序数字数组的代码
asp 验证输入网址是否有效并可以访问 与正则验证输入网址
asp验证Ip格式的函数
asp实现生成由数字,大写字母,小写字母指定位数的随机数
asp 格式化sql中的like字符串
asp 实现显示所有的服务器变量值的函数
asp 取得用户真实IP,对代理地址仍然有效的函数
asp 通用数据库连接过程函数
asp 字符串截取函数
asp下实现格式化文件大小以MB显示的函数
asp 下用正则表达式检测邮箱格式的函数
asp 实现检测字符串是否为纯字母和数字组合的函数
asp代码实现检测组件是否安装的函数
asp通过JMAIL实现通用发送函数

ASP 中的 使用纯粹的asp+语言制作的栏目管理(二)


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-11-03   浏览: 159 ::
收藏到网摘: n/a

  /*
豆腐制作 都是精品
http://www.asp888.net 豆腐技术站
如转载 请保留完整版权信息
*/
昨天我们看了 豆腐利用 asp.net 的特性作的 栏目管理的程序的第一部分,在今天的第二部分中,豆腐将把 昨天我们录入界面录入的数据显示出来,并且在这个部分,专门做了一个 用来进行分页管理的一个Pagelet,通过这个pagelet 我们将 Select 出来的记录进行了分页的处理,并且复习了我们以前的文章如何在asp+ 中使用自定义的pagelet通过这个程序,我们将会学习到在 asp.net 的编程中的一些中级的技术(其实更为高级的技术,我们在目前)的学习和应用的过程中,似乎还没有用到!不对,不对,是豆腐没有用到:)下面我们首先来看看我们作的这个ascx文件:也叫用户自定义组件文件
c.ascx:
<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="System.Data.SQL" %>
<% @ Import Namespace="System.Drawing" %>
<script runat=server language="C#">
public SQLDataReader sRead; //这个是绑定的数据
public int intPageCount=5; //这个是每页需要显示的数据的多少 默认是10
public int intRecStart=0; //这个是当前数据的 起使位置, 默认是 0
public int intCurrentRow=0; //当前的Row 指针所在的位置
public int intRecCount; //当前的这个查询的记录总数

public void DataBind(){
int i;
for(i=0;i<intRecStart;i++){
sRead.Read();
}
}
public String GetVal(String strName){
sRead.Read();
return sRead[strName].ToString();
}
public bool MyRead(){
if(!sRead.Read())
return false;
if(intCurrentRow==intPageCount)
return false;
intCurrentRow++;
return true;
}
public void PageBar(){
TableCell c;
TableRow r = new TableRow();
c= new TableCell();
int ii=intRecCount;
//(ArrayList)sRead;
String strWrite;
if(intRecStart==0){
strWrite="首页 上页";
}
else
{
strWrite="<a href='c.aspx?start=0'>首页</a> <a href='c.aspx?start=" + (intRecStart-intPageCount).ToString() + "'>上页</a>";
}
if((intRecStart+intPageCount)>ii){
strWrite= strWrite + " 首页 上页";
}
else{
strWrite= strWrite + "<a href='c.aspx?start=" + (intRecStart+intPageCount).ToString() +"'>下页</a> <a href='c.aspx?start=" + (intRecStart+intPageCount).ToString() + "'>末页</a>";
}
c.Controls.Add(new LiteralControl(strWrite));
r.Cells.Add(c);

c = new TableCell(); //生成新的一列
c.Controls.Add(new LiteralControl("共有记录" + ii.ToString()));
r.Cells.Add(c);

Table1.Rows.Add(r);
}
</script>
<asp:Table id="Table1" GridLines="Both" HorizontalAlign="Center" Font-Name="Verdana" Font-Size="8pt" width=100% Runat="server"/>
然后,我们可以通过语句:
<%@ Register TagPrefix="asp888" TagName="myPageTable" Src="c.ascx" %>
可以把c.ascx 文件加入到 任意一个aspx 文件中,而且,我们可以在 aspx 文件中对 我们的这个 ascx 文件中的 public 定义的
参数进行Get 和 Set 的操作,就如同 操作<asp:TextBox> 的属性和方法是一样的,大家在这里一定要特别注意
<asp888:myPageTable id="menuControl1" runat=server />,这个就是我们在 通过 <% Register >中定义的PreFix 和 TagName
来组成的,这样我们通过这个程序,模拟了DataGrid 的 DataBind 的操作,同时也实现了分页的自动化
<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="System.Data.SQL" %>
<%@ Register TagPrefix="asp888" TagName="myPageTable" Src="c.ascx" %>
<script runat=server language="C#">
protected void Page_Load(Object Src, EventArgs E){
int intRecStart=Request.QueryString["start"].ToInt16();
SQLDataReader dbRead;
SQLCommand dbComm;
String strSQL;
String strConn;
SQLConnection conn;
Hashtable Cfg=new Hashtable();
Cfg = (Hashtable)Context.GetConfig("appsettings");
strConn=Cfg["Conn"].ToString();
conn = new SQLConnection(strConn);
//首先得到记录总数
strSQL="select count(*)