1

カスタムページングを使用してGridViewを作成しようとしています。私は非常に大きなデータを持っているので、10の速度を上げるために、カスタムページングを実行しようとしています。

入力パラメーターを受け取り、特定のページに属する結果の行で埋められたSQLServerストアドプロシージャをSelectedPageNumber作成しましたSelectedPageSizeDataTableストアドプロシージャには、MaxPageNumber出力パラメータとしてもあります。

ページのデータをGridViewにバインドすることはできますがMaxPageNumber、ストアドプロシージャとして取得された値までのページ番号を表示する方法がわかりません。

.NetFramework4.0を使用しています

重複している可能性がありますが、解決策が見つかりませんでした。

あなたは私を助けることができます ???

4

3 に答える 3

4

Repeaterコントロールを使用してページャーを作成できます。

// These are your outputs from that SP
int MaxPageNumber = 10,
    CurrentPageNumber = 4;

void BindPager()
{
    DataTable PagerData = new DataTable();
    PagerData.Columns.Add("pageNo");
    for (int i = 1; i < MaxPageNumber; i++)
      PagerData.Rows.Add(i);
    pager.DataSource = PagerData;
    pager.DataBind();
}

<asp:Repeater runat="server" ID="pager" onitemcommand="pager_ItemCommand" 
        onitemdatabound="pager_ItemDataBound">
   <ItemTemplate>
       <asp:Button runat="server" ID="pageNo" 
                   Text='<%# Eval("pageNo") %>' 
                   CommandArgument='<%# Eval("pageNo") %>'
                   CommandName="DoPaging" />
   </ItemTemplate>
</asp:Repeater>


protected void pager_ItemDataBound(object sender, RepeaterItemEventArgs e)
{
  // Code to highlight current page
  if (e.Item.ItemType == ListItemType.Item || 
      e.Item.ItemType == ListItemType.AlternatingItem)
  {
     Button pageNo = e.Item.FindControl("pageNo") as Button;
     if (pageNo == null) return;
     if (pageNo.Text == CurrentPageNumber.ToString())
        pageNo.BackColor = Color.Blue;
     else
        pageNo.BackColor = Color.Gray;
  }
}

protected void pager_ItemCommand(object source, RepeaterCommandEventArgs e)
{
  // perform your paging here according to page number
}
于 2012-10-22T07:36:54.040 に答える
0

カスタムページングを使用している場合は、ページ番号を表示するためのカスタムページコントロールを作成する必要があります。カスタムページャーをグリッドビューの下に配置し、ページ番号のクリックイベントでグリッドを再バインドできます。

于 2012-10-22T07:31:02.277 に答える
0

ページ番号を表示するには、MinPageNumberからMaxPageNumberまでの整数のリストを作成し、リストをDataSourceとしてRepeater-Controlにバインドし、Repeaterに各ページ番号を表示させます。現在のページ番号によっては、そのリストを再作成する必要がある場合があります。

于 2012-10-22T07:30:43.973 に答える