NETのrepeat概要と改ページ効果


Repeatコントロールは、データバインディングコンテナコントロールであり、各項目のリストを生成し、テンプレートを使用してページ上の各項目のレイアウトを定義することができます。このページが実行されている場合、コントロールはデータソースの各項目に対してこのレイアウトを繰り返します。
テンプレートに合わせてrepeatコントロールを使う
repeatコントロールを使用するには、コントロールの内容レイアウトを定義するテンプレートを作成します。テンプレートには、ラベルとコントロールの任意の組み合わせが含まれます。テンプレートが定義されていない場合、またはテンプレートに要素が含まれていない場合、アプリケーションが実行されているときは、コントロールはページに表示されません。
ItemTemplate:データソースの各データ項目に一回表示するHTML要素とコントロールを含む。 
Alternating ItemTemplate:交互のデータ項目に対してフォーマット設定を行います。(データソースのデータ項目ごとに1回表示するHTML要素とコントロールを含みます。通常、このテンプレートを使用して、異なる外観を交互に作成することができます。例えば、ItemTemplateで指定された色とは異なる背景色を指定します。
SeparatoTemplate:セパレータをフォーマット設定(各項目の間に表示される要素を含む。)
Header Template:ヘッダーをフォーマット設定(リストの先頭にそれぞれ表示されるテキストとコントロールを含む。)
Footer Template:フッターの書式設定(リストの最後にそれぞれ表示されるテキストとコントロールを含む。)     
Repeat改ページの効果は以下の通りです。
フロントコード:

<body>
 <asp:Repeater ID="Repeater1" runat="server">
  <HeaderTemplate>
  <p style="background-color:#988c6e;width:400px;padding-top:5px;padding-bottom:5px;margin-left:30px;margin-top:30px;border-radius:5px;color:#fff;font-weight:bold;"><span style="padding-left:30px;">   </span><span style="padding-left:100px;">    </span><span style="padding-left:90px;">   </span></p>
  <table style="margin-left:30px;margin-top:30px;">
  </HeaderTemplate>
  <ItemTemplate>
  <tr>
   <td style="width:120px;text-align:left; padding-left:20px;"><%#Eval("Username") %></td>
   <td style="width:170px;text-align:left; "><%#Eval("RegistrationTime") %></td>
   <td style="width:50px;text-align:left; "><%#Eval("AccessAmount") %></td>
  </tr>
  <tr>
   <td colspan="3" style="border-bottom:1px inset #C0D9D9;padding-top:7px;"></td>
  </tr>
  </ItemTemplate>
  <FooterTemplate>
  </table>
  </FooterTemplate>
 </asp:Repeater> 
 <div style="margin-left:50px;">
  <div style="margin:0 auto; margin-top:50px;border:1px solid #fff;font-size:16px;font-family:"microsoft yahei","  ";">
  <a><div style="border:1px solid #000; width:60px; float:left; margin:5px;text-align:center;"><a style="color:#000"> <asp:Label runat ="server" ID="zong"> </asp:Label> </a></div></a>
  <a><div style="border:1px solid #000; width:60px; float:left;margin:5px;text-align:center;"><a style="color:#000"> <asp:Label runat ="server" ID="dangqian"> </asp:Label> </a></div></a>
  <a><div style="border:1px solid #000; width:40px; float:left;margin:5px;text-align:center;"> <a style="color:#000"><asp:hyperlink id="first" runat="server" style="color:#000">  </asp:hyperlink></a></div></a>
  <a><div style="border:1px solid #000; width:60px; float:left;margin:5px;text-align:center;"><a style="color:#000"><asp:hyperlink id="lnkPrev" runat="server" style="color:#000">   </asp:hyperlink></a></div></a>
  <a><div style="border:1px solid #000; width:60px; float:left;margin:5px;text-align:center;"><a style="color:#000"><asp:hyperlink id="lnkNext" runat="server" style="color:#000">   </asp:hyperlink></a></div></a>
  <a><div style="border:1px solid #000; width:40px; float:left;margin:5px;text-align:center;"> <a style="color:#000"><asp:hyperlink id="end" runat="server" style="color:#000">  </asp:hyperlink></a></div></a>
  </div> 
 </div> 
 </body>
バックグラウンドコード:

protected void Page_Load(object sender, EventArgs e)
 {
  if(!Page.IsPostBack)
  {
  getUsers();
  }
 }
 private void getUsers()
 {
  List<Users1> list = new AdminManager().QueryUsers();    
  PagedDataSource pag = new PagedDataSource();
  pag.AllowPaging = true;//       
  pag.PageSize = 10; //      3 
  pag.DataSource = list; //         
  zong.Text = pag.PageCount.ToString(); //       
  int CurrentPage;
  //        null     ,      
  if (Request.QueryString["Page"] != null)
  {

  CurrentPage = Convert.ToInt32(Request.QueryString["Page"]);
  }
  else
  {
  CurrentPage = 1;
  }
  if (Request.QueryString["PageSize"] != null)
  {
  pag.PageSize = Convert.ToInt32(Request.QueryString["PageSize"]);
  }
  else
  {
  pag.PageSize = 10;
  }
  pag.CurrentPageIndex = CurrentPage - 1; //         -1
  dangqian.Text = CurrentPage.ToString(); //    
  if (!pag.IsFirstPage)
  {
  //  Request.CurrentExecutionFilePath         
  lnkPrev.NavigateUrl = Request.CurrentExecutionFilePath + "?Page=" + Convert.ToString(CurrentPage - 1);
  } 
  //         ,    Page         +1,       
  if (!pag.IsLastPage)
  {
  // Request.CurrentExecutionFilePath         
  lnkNext.NavigateUrl = Request.CurrentExecutionFilePath + "?Page=" + Convert.ToString(CurrentPage + 1);
  }
  //  
  first.NavigateUrl = Request.CurrentExecutionFilePath + "?Page=" + Convert.ToString(1);
  //  
  end.NavigateUrl = Request.CurrentExecutionFilePath + "?page=" + pag.PageCount.ToString(); 
  if (Convert.ToInt32(HttpContext.Current.Request["page"]) > pag.PageCount)
  {  
  first.NavigateUrl = Request.CurrentExecutionFilePath + "?Page=" + Convert.ToString(1);
  }
  this.Repeater1.DataSource = pag;
  this.Repeater1.DataBind();
 }
改ページが必要でない場合は、以下のコードが実行されます。

protected void Page_Load(object sender, EventArgs e)
{
  if(!Page.IsPostBack)
 {
   getUsers();
 }
}
private void getUsers()
{
  List<Users1> list = new AdminManager().QueryUsers(); 
 this.Repeater1.DataSource = list ;
 this.Repeater1.DataBind();
}
以上が本文の全部です。本文の内容は皆さんの学習や仕事に一定の助けをもたらしてくれると同時に、私達を応援してください。