当前位置: 首页 > 图文教程 > 网站运营 > 网站优化 > Asp.Net程序员与SEO - .Net基于SEO友好数据分页

网站优化
谷歌官方《搜索引擎优化指南》分析工具篇
谷歌中文网站管理员教程 链接架构重要性
更新网站内容频率对SEO的影响
针对于谷歌搜索引擎优化的十二个基本步骤
《网络营销教程—SEO》 第二章搜索引擎
《网络营销教程—SEO》 第三章搜索引擎营销
基础教程 搜索引擎优化基础之空间和域名
基础教程 搜索引擎优化基础之爬虫程序篇
国内四大主流搜索引擎 百度谷歌雅虎搜狗
搜索引擎优化基础教程 进行关键词的优化
搜索引擎优化基础教程 如何针对百度优化
十四个因素 将导致网站不被搜索引擎收录
搜狗搜索引擎优化方法
九大搜索引擎优化作弊总结 检查下你网站
影响网站优化的五项关键策略
搜索引擎优化基础教程 单面页的最佳优化
网站优化过程中的关键点 关键词的选择
搜索引擎优化排名做好的十个基本要点
谈外连对整个网站的seo影响有多大
搜索引擎优化SEO操作指南

网站优化 中的 Asp.Net程序员与SEO - .Net基于SEO友好数据分页


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

Asp.Net有很多用来显示数据的控件都是拖出来就可以用的,很简单,很方便,代码量也很少。象GridViews和DataGrids就属于这样的控件,但这两个控件分页机制采用的是javascript来与本页交互实现的,分页后url不会有新的改变。这样的话对SEO不是很友好的,因为当搜索引擎爬虫(或成为蜘蛛)从你的网页上得到这个这个连接时,“点击进入”发现是属于同一页面,将不会将分页后的结果录入搜索引擎的编制结果。

从SEO角度来讲,这种分页显示方法对搜索引擎爬虫是不友好的。这里我将用另外一中对搜索引擎更友好的分页方法来代替上的分页方法。我们可以使用DataList或则Repeater控件,通过PagedDataSource来进行分页。

我这里将用Repeater控件来实现,为什么不用DataList呢?个人觉得DataList虽然功能强大于Repeater,但是DataList在生成HTML代码的时候会有少量多余的代码出现例如:span,table之类的。而Repeater更能让我们控制代码的结构。分页的方法很多,网上搜索一下大把,下面我们来看下我的分页函数代码。

以下为引用的内容:
///<summary>
///分页函数
///</summary>
///<param name="pagesStr">作为输出分页HTML文本</param>
///<param name="list">需要分野数据源</param>
///<param name="page">默认页</param>
///<param name="path">URL地址</param>
///<param name="pagesize">每页的分布数据条数</param>
///<returns>返回PagedDataSource数据源</returns>
public static PagedDataSource pds(out string pagesStr, IList list, string page, string path, int pagesize)
{
    PagedDataSource pds = new PagedDataSource();
    pds.DataSource = list;
    pds.AllowPaging = true;
    pds.PageSize = pagesize;
 
    pagesStr = "";
 
    int CurPage = 0;
    if (page != null && page.ToString() != "")
    {
        CurPage = int.Parse(page);
    }
    else
    {
        CurPage = 0;
    }
 
    pds.CurrentPageIndex = CurPage;
 
    int startpage = CurPage;
    int pageNum = 5;
    int j = 0;
 
    if (pds.PageCount - CurPage < pageNum)
    {
        startpage = (pds.PageCount - CurPage) + (CurPage - pageNum) > 0 ? (pds.PageCount - CurPage) + (CurPage - pageNum) : 0;
    }
 
    if (!pds.IsFirstPage)
    {
        pagesStr += "<a href='" + path + "?Page=0' class='pagecode'> << </a>";
        pagesStr += "<a href='" + path + "?Page=" + Convert.ToString(CurPage - 1) + "' class='pagecode'> < </a>";
    }
 
    for (int i = startpage; i < pds.PageCount; i++)
    {
        if (pds.PageCount == 1)
            break;
 
        pagesStr += "<a href='" + path + "?Page=" + i.ToString() + "'";
        if (CurPage == i)
        {
            pagesStr += " class='pagecodeActive'";
        }
        else
        {
            pagesStr += " class='pagecode'";
        }
        pagesStr += ">" + (i + 1).ToString() + "</a>";
 
        j++;
        if (j == pageNum)
            break;
 
    }
 
    if (!pds.IsLastPage)
    {
        pagesStr += "<a href='" + path + "?Page=" + Convert.ToString(CurPage + 1) + "' class='pagecode'> > </a>";
        pagesStr += "<a href='" + path + "?Page=" + Convert.ToString(pds.PageCount - 1) + "' class='pagecode'> >> </a>";
    }
 
    pagesStr += "总记录数" + list.Count + "&nbsp;";
 
    return pds;
}
#endregion
上面是函数,页面调用部分:
string page;
if (Request.QueryString["page"] != null && Request.QueryString["page"].ToString() != "")
    page = Request.QueryString["page"].ToString();
else
    page = "0";
 
 
string pagestr;
this.R_ModuleType.DataSource = Pagination.pds(out pagestr, ResourceSrv.GetAllResource(), page, Request.CurrentExecutionFilePath.ToString(), 20);
this.R_ModuleType.DataBind();
 
this.lb_total.Text = pagestr; //可以放一个div来专门放
 
.aspx部分
<asp:Repeater runat="server" ID="R_ModuleType">
<HeaderTemplate>
        …… 头部代码
    </HeaderTemplate>
    <ItemTemplate>
              …… 内容代码
    </ItemTemplate>
    <FooterTemplate>
         …… 底部代码部分
    </FooterTemplate>
</asp:Repeater>
<asp:Literal ID=" lb_total " runat="server"></asp:Literal>
 
CSS部分
/*分页数字*/
.pagecode,.pagecodeActive{margin:0 2px; padding:0 5px; border:1px solid #ccc; float:left; text-align:center; }
.pagecode{ background-color:White;}
.pagecodeActive{ background-color:#fffccc;}

原文链接:http://www.blog-design.cn/post/aspdotnet-seo-page.html