C# 如何添加查询字符串param并进行分页

C# 如何添加查询字符串param并进行分页,c#,asp.net,gridview,paging,C#,Asp.net,Gridview,Paging,我正在尝试使用手动分页实现GridView。我想为分页添加一个查询字符串param。这完全是针对SEO的,而且是绝对需要的。该代码已经发布在网站上,大约有500条条目(发布在gridview) 现在,公司希望我做一个查询字符串参数,这样搜索引擎就可以遍历所有页面并捕获它。现在搜索引擎只看到gridview上的第1页。这就是我从SEO团队了解到的 我真的不知道该怎么做。请帮忙。我不能真的改变所有的代码,因为它会弄乱所有已经存在的页面 GirdView代码 数据来源 请发布您的entriesGrid

我正在尝试使用手动分页实现
GridView
。我想为分页添加一个
查询字符串param
。这完全是针对
SEO
的,而且是
绝对需要的
。该代码已经发布在网站上,大约有500条条目(发布在
gridview

现在,公司希望我做一个查询字符串参数,这样搜索引擎就可以遍历所有页面并捕获它。现在搜索引擎只看到gridview上的第1页。这就是我从SEO团队了解到的

我真的不知道该怎么做。请帮忙。我不能真的改变所有的代码,因为它会弄乱所有已经存在的页面

GirdView代码 数据来源
请发布您的
entriesGridView
数据源,包括查询,以便我们了解您正在做什么以及您应该更改什么。我可能已经非常过时了,但我认为大多数搜索引擎很久以前就停止查看查询字符串了?因此,“SEO友好URL”如
/items/pages/1
等。请查看我问题中的数据源。。。
<asp:GridView runat="server" AllowPaging="true" ID="entriesGridView" AutoGenerateColumns="false"
DataKeyNames="EntryId" ShowHeader="False" OnRowDataBound="entriesGridView_RowDataBound"
CssClass="grid" OnPageIndexChanging="entriesGridView_PageIndexChanging" PageSize="20">
<PagerStyle CssClass="pager"></PagerStyle>
      <Columns>
            // some template / bound fields
      </Columns>
      <EmptyDataTemplate>
            // empty results text....
      </EmptyDataTemplate>
      <EmptyDataRowStyle HorizontalAlign="Center" />
   </asp:GridView>
protected void entriesGridView_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
      LoadEntriesGridView(false, false, false, sqlCriteria);
      entriesGridView.PageIndex = e.NewPageIndex;
      entriesGridView.DataBind();
}
public static EntryCollection LoadForCriteriaWithJoin(string sqlCriteria, bool isEmailQuery, bool isFullNameQuery, string sortExpression)
      {
            //DEFAULT SORT EXPRESSION
            if (string.IsNullOrEmpty(sortExpression)) sortExpression = "OrderBy";
            //CREATE THE DYNAMIC SQL TO LOAD OBJECT
            var selectQuery = new StringBuilder();
            selectQuery.Append("SELECT");
            selectQuery.Append(" CE.* ");
            selectQuery.Append("FROM EntryTable CE ");
            selectQuery.Append("JOIN ContestantsTable CC ");
            selectQuery.Append("ON CE.ContestantId = CC.ContestantId ");

            string whereClause = null;
            if (isEmailQuery)
                  whereClause = "WHERE CE.IsApproved = 1 AND CC.Email = @EmailAddress";
            else if (isFullNameQuery)
                  whereClause = "WHERE CE.IsApproved = 1 AND CC.FirstName + ' ' + CC.LastName LIKE '%' + @FullName + '%'" +
                        "OR CE.CName LIKE '%' + @FullName + '%'" +
                         "OR CE.CTitle LIKE '%' + @FullName + '%'" +
                          "OR CE.Answer1 + ' ' + CE.Answer2 + ' ' + Answer3 LIKE '%' + @FullName + '%'";
            else
                  whereClause = "WHERE CE.IsApproved = 2";     // returning Empty result...

            if (!String.IsNullOrEmpty(sqlCriteria))
                  selectQuery.Append(whereClause);

            selectQuery.Append(" ORDER BY " + sortExpression);
            var database = T.I.Database;
            var selectCommand = database.GetSqlStringCommand(selectQuery.ToString());

            if (isEmailQuery)
                  database.AddInParameter(selectCommand, "@Email", System.Data.DbType.String, sqlCriteria);
            if (isFullNameQuery)
                  database.AddInParameter(selectCommand, "@FullName", System.Data.DbType.String, sqlCriteria);

            //EXECUTE THE COMMAND
            var results = new EntryCollection();
            using (var dr = database.ExecuteReader(selectCommand))
            {
                  while (dr.Read())
                  {
                        var entry = new Entry();
                        MWCompetitionsEntry.LoadDataReader(entry, dr);
                        results.Add(entry);
                  }
                  dr.Close();
            }
            return results;
      }