专栏首页企鹅号快讯主页后台源码及释义

主页后台源码及释义

主页后台源码主要是实现数据绑定,即用 SQL 语句从数据库选出记录,然后绑定到控件上,代码实现比较简单。除数据绑定外,还有给控件赋值、字符串的连接方法以及控件的显示与隐藏。

  一、主页后台源码涉及到的知识点

1、给服务器端控件(Literal)赋值;

2、数据绑定;

3、字符串的连接方法;

4、根据内容有无显示隐藏控件。

  二、知识点分析

1、给服务器端控件(Literal)赋值

非列表型常用服务器端控件有 Literal、Label、HyperLink、Image、HiddenField、TextBox、Button,不用提交表单的页面常用前四个,用提交表单的常用后三个。

Literal 与 Label 都是向前台输出文本,区别在于 Literal 只输出文字不输出任何 Html 元素,而 Label 输出 Html 元素与文字,即用 文字;

HyperLink 是超链接,在前台输出

文字

Image 是图片,在前台输出 ;

后三个在提交表单的页再一一介绍。主页用 Literal 给主页标题、关键词和描述赋值,例如给主页标题赋值的前台代码为:

后台代码为:

litTitle.Text =PublicStatic.webName +"_"+PublicStatic.keywords;

从赋值代码中可以看出,主页标题由“网站名称和关键词组成”,这样有利在搜索引擎中获得排名。名称(webName)和关键词(keywords)都是引用静态类(PublicStatic)中的变量,它们由该类从数据库中取出,具体实现可查看PublicStatic类。

2、数据绑定

实现过程:先从数据库或文件中取出记录,然后绑定到控件上。

由于主页打开速度越快越好,所以选用输出数据最少的 Repeater 控件来绑定数据,以绑定“公司新闻”为例如。

前台代码为:

.htm"target="_blank"> 12 ? EpWeb.privates.classes.PublicClass.newstr(EpWeb.privates.classes.PublicClass.ToString(Eval("newsname")), 12) +"…": EpWeb.privates.classes.PublicClass.ToString(Eval("newsname"))%>[]

后台代码:

//绑定新闻

private voidBindNews()

{

stringstrSQL ="Select top 11 newsid,newsname,adddate From news Order By adddate Desc";

DataTabledt =SqlData.dataTable(strSQL);

repNews.DataSource = dt.DefaultView;

repNews.DataBind();

}

后台代码把绑定的过程定义为一个方法,实现过程如下:

1)首先定义从数据库取数据的 SQL 语句,SQL 语句的意思是:从数据库的新闻表(news)取出按添加日期(adddate)排序的 11 条记录(top 11),选出字段为:newsid,newsname,adddate;

2)然后调用SqlData类的 dataTable 方法执行 SQL 语句,并把获取到的记录赋给DataTable变量 dt;类SqlData主要实现连接数据库和从数据库中取出记录,具体实现方法请看SqlData类;

3)把取出的数据绑定到控件 Repeater 上,用方法中的后面两句代码。

以上虽然只举了 Repeater 控件的绑定方法,其它控件的绑定方法也一样。

3、字符串的连接方法

把几个字符连起来赋给一个变量,通常有两种方法。

1)用加号 + 连接,代码如下:

stringnames ="李"+"和"+"友";

2)用string.Format,以主页中的给关键词赋为例,代码如下:

stringmeta ="";

litKeywords.Text =string.Format(meta,"Keywords",PublicStatic.keywords);

变量 meta 中有 和 ,它们是用来被字符串取代的编号,将被"Keywords"取代, 将被PublicStatic.keywords 取代。

4、根据内容有无显示隐藏控件

Asp.net 控件的隐藏与显示用 Visible 属性;不设置 Visible,或设置为真,则显示控件;设置为假,则隐控件。主页中“友情链接”部分,要据是否添加了友情链接来决定是否显示该部分。

前台代码如下:

友情链接:

"target="_blank">

代码中用了 Panel 控件,并把 Visible="false",即设置为隐藏。

后台代码如下:

//绑定友情链接

private voidBindLink()

{

stringstrSQL ="select sitename,url from friendlink";

DataTabledt =SqlData.dataTable(strSQL);

if(dt.Rows.Count > 0)

{

repLink.DataSource = dt;

repLink.DataBind();

paLink.Visible =true;

}

}

如果从数据库中能选择出“友情链接”记录(即if(dt.Rows.Count > 0)),则显示 Panel 控件(即 paLink.Visible =true)。

  三、完整源码

namespaceEpWeb

{

public partial classindex: System.Web.UI.Page

{

protected voidPage_Load(objectsender,EventArgse)

{

SetWebHeader();

BindNews();

BindProduct();

BindClass();

BindLink();

}

private voidSetWebHeader()

{

litTitle.Text =PublicStatic.webName +"_"+PublicStatic.keywords;

stringmeta ="";

litKeywords.Text =string.Format(meta,"Keywords",PublicStatic.keywords);

litDescription.Text =string.Format(meta,"Description",PublicStatic.description);

}

//绑定产品

private voidBindProduct()

{

//绑定最新供应

stringstrSQL ="Select top 6 id,pname,psize,price1,pic,pic1 From product Where newProduct = 1 and firstFlag = 1 Order By adddate Desc,id Desc";

DataTabledt =SqlData.dataTable(strSQL);

repNewProduct.DataSource = dt.DefaultView;

repNewProduct.DataBind();

//绑定推荐产品

strSQL ="Select top 7 id,pname,psize,price1,pic,pic1 From product Where recommend = 1 and firstFlag = 1 Order By adddate Desc,id Desc";

dt =SqlData.dataTable(strSQL);

repRecommend.DataSource = dt.DefaultView;

repRecommend.DataBind();

//绑定产品

strSQL ="Select top 8 id,pname,psize,price1,pic,pic1 From product Where recommend = 0 and firstFlag = 1 Order By adddate Desc,id Desc";

dt =SqlData.dataTable(strSQL);

repProduct.DataSource = dt.DefaultView;

repProduct.DataBind();

}

//绑定分类

private voidBindClass()

{

stringstrSQL ="Select Top 14 categoryid,category From category order by categoryorder";

DataTabledt =SqlData.dataTable(strSQL);

repClass.DataSource = new DataView(dt);

repClass.DataBind();

}

//绑定新闻

private voidBindNews()

{

stringstrSQL ="Select top 11 newsid,newsname,adddate From news Order By adddate Desc";

DataTabledt =SqlData.dataTable(strSQL);

repNews.DataSource = dt.DefaultView;

repNews.DataBind();

}

//绑定友情链接

private voidBindLink()

{

stringstrSQL ="select sitename,url from friendlink";

DataTabledt =SqlData.dataTable(strSQL);

if(dt.Rows.Count > 0)

{

repLink.DataSource = dt;

repLink.DataBind();

paLink.Visible =true;

}

}

}

}

本文来自企鹅号 - 玉龙风采媒体

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Python或将取代VBA,成为Excel官方脚本语言

    程序员头条(ID:CoderTop) 报道 微软正考虑添加 Python 为官方的 Excel 脚本语言‍ 据外媒报道,微软正考虑添加 Python 为官方的一...

    企鹅号小编
  • 转行数据挖掘和机器学习(四)

    目前从纯数学专业转行到机器学习领域已经有两年半了,又到了该总结转行经验和个人成长的时候。笔者在公司里面已经做过智能推荐系统,智能安全系统和智能运维系统。除此之外...

    企鹅号小编
  • 从图灵机开始

    说到图灵机,我们首先要说说图灵这个人。笔者觉得我们这种搞计算机的人都应该知道并记得这个人。 图灵,1912年6月23日生于英国帕丁顿。是数学家、密码破译专家,当...

    企鹅号小编
  • MADlib——基于SQL的数据挖掘解决方案(23)——分类之SVM

    SVM法即支持向量机(Support Vector Machine,SVM)法,由Vapnik等人于1995年提出,具有相对优良的性能指标。该方...

    用户1148526
  • 当网站监控检测域名被劫持了如何解决

    大家看看下面这个现象大家是不是遇到过,在想访问一个网站的时候明明域名没输错,结果却跑到了一个钓鱼网站上?用户数据泄露、流量劫持、页面篡改等安全事件频发怎么办?这...

    用户5856527
  • 深入理解JavaScript系列(30):设计模式之外观模式

    外观模式(Facade)为子系统中的一组接口提供了一个一致的界面,此模块定义了一个高层接口,这个接口值得这一子系统更加容易使用。

    用户4962466
  • DNS-域名解析系统

    见贤思齊
  • Katalon Studio处理数据库

    在日常的测试工作中需要经常要用到:数据库的处理,执行SQL语句。 Katalon Studio可以通过定制关键字的方式连接到数据库,并执行SQL语句。 基本实现...

    Altumn
  • LVS-4.负载调度

    三种IP负载均衡技术解决了系统的可伸缩性和透明性。如何通过负载调度器将请求高 效地分发到不同的服务器执行,使得由多台独立计算机组成的集群系统成为一台虚拟服务器;...

    悠扬前奏
  • [转载]visio类图中的接口和实现类关系的画法

    在visio中画类图时,我们一般需要画出接口和实现类并且表明他们的实现关系。可是找了半天没有实现关系,只有泛化关系(继承关系),怎么办呢?其实也很简单,具体做法...

    用户3579639

扫码关注云+社区

领取腾讯云代金券