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

网站优化
搜索优化注意的网站优化九不宜
搜索引擎的原理就是你搜索信息的习惯
王通:内容因素对SEO的影响分析
大道无形 没有SEO才是真的SEO
SEO老大哥:SEM是继SEO发展的又一个产物
谈网站URL的规范对SEO的意义
张何:搜索引擎优化提升中小企业网站竞争力
就新站百度收录问题谈下自己的心得
从百度指数看百度首页排名网站流量效果
SEO未来的路有多远
一周做一个有权重连接,增加网站权重牵着百度爬
让百度蜘蛛变成你的新娘 让搜索引擎更喜欢你的网站
SEO静态真的还有用吗
使用马克斯电影程序如何做优化
外部链接是什么意思
如何提高内页SEO优化的方法
费明红:XHTML语义在SEO优化中的应用
从查询框中诊断搜索引擎问题
企业搜索引擎营销 中小企业的营销策略实施
网站优化(seo)是一种有承诺的苦力行为

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


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-10-17   浏览: 181 ::
收藏到网摘: 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