Heim  >  Artikel  >  Backend-Entwicklung  >  Detaillierte Code-Erklärung zu Repeater- und Paging-Effekten (ASP)

Detaillierte Code-Erklärung zu Repeater- und Paging-Effekten (ASP)

Y2J
Y2JOriginal
2017-05-05 13:41:331176Durchsuche

Das Repeater-Steuerelement ist ein Datenbindungscontainersteuerelement, das eine Liste jedes Elements generieren und Vorlagen verwenden kann, um das Layout jedes Elements auf der Webseite zu definieren. In diesem Artikel wird dies im Detail vorgestellt. Schauen wir uns den folgenden Editor an.

Das Repeater-Steuerelement ist ein Datenbindungscontainer-Steuerelement. Es kann eine Liste jedes Elements generieren und Vorlagen verwenden, um den Inhalt jedes Elements zu definieren auf dem Webseitenlayout. Wenn die Seite ausgeführt wird, wiederholt das Steuerelement dieses Layout für jedes Element in der Datenquelle.

Verwenden Sie das Repeater-Steuerelement mit einer Vorlage

Um das Repeater-Steuerelement verwenden zu können, müssen Sie eine Vorlage erstellen, die das Layout des Steuerelements definiert Inhalt. Vorlagen können eine beliebige Kombination aus Markup und Steuerelementen enthalten. Wenn die Vorlage nicht definiert ist oder keine Elemente enthält, wird das Steuerelement beim Ausführen der Anwendung nicht auf der Seite angezeigt.

ItemTemplate: Enthält HTML-Elemente und Steuerelemente, die einmal für jedes Datenelement in der Datenquelle gerendert werden.

AlternatingItemTemplate: Formatieren alternierender Datenelemente (enthält HTML-Elemente und Steuerelemente, die für jedes Datenelement in der Datenquelle einmal gerendert werden sollen. Normalerweise können Sie diese Vorlage verwenden, um unterschiedliche Erscheinungsbilder für alternierende Elemente zu erstellen, z. B. angeben eine Hintergrundfarbe, die sich von der in der ItemTemplate angegebenen Farbe unterscheidet).

SeparatorTemplate: Formatieren Sie das Trennzeichen (das Element, das das Element enthält, das zwischen den einzelnen Elementen gerendert wird).

HeaderTemplate: Formatiert den Header (enthält Text und Steuerelemente, die separat am Anfang der Liste gerendert werden).

FooterTemplate: Formatieren Sie die Fußzeile (enthält Text und Steuerelemente, die am Ende der Liste separat gerendert werden).

RepeaterPagingDer Effekt ist wie folgt:

Front-End-Code:

<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> 
 <p style="margin-left:50px;">
  <p style="margin:0 auto; margin-top:50px;border:1px solid #fff;font-size:16px;font-family:"microsoft yahei","宋体";">
  <a><p 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></p></a>
  <a><p 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></p></a>
  <a><p 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></p></a>
  <a><p 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></p></a>
  <a><p 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></p></a>
  <a><p 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></p></a>
  </p> 
 </p> 
 </body>

Backend-Code:

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();
 }

Wenn kein Paging erforderlich ist, können Sie den folgenden Code ausführen:

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();
}

【Verwandte Empfehlungen】

1. ASP kostenloses Video-Tutorial

2 ASP-Tutorial

3. Li Yanhui ASP grundlegendes Video-Tutorial

Das obige ist der detaillierte Inhalt vonDetaillierte Code-Erklärung zu Repeater- und Paging-Effekten (ASP). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn