Repeater 와 ListView 기능 개요 및 사용 안내

7693 단어 RepeaterListView
Repeater
Repeater(foreach)는 연 결 된 데이터 원본 의 데 이 터 를 옮 겨 다 니 며 형식 에 따라 표시 합 니 다.모든 데 이 터 는 Repeater 의에 의 해 결 정 됩 니 다.템 플 릿 은 foreach,ItemTemplate 에서{}에 해당 하 는 문 구 를 여러 번 표시 합 니 다.이름:<%\#Eval("Name")%>나이:<%\#Eval("Age")%>
.주의:%와\#중간 에 빈 칸 이 있 으 면 안 됩 니 다.
<%\#Eval("Name")%>은 현재 실체 대상 의 Name 속성 을 이 위치 에 표시 합 니 다.Eval,Bind 등 데이터 바 인 딩 방법 을 사용 할 때\#를 사용 하 십시오.
Eval 은 지정 한 위치 에 속성 을 표시 하기 때문에 텍스트 상자 에이름 을 표시 할 수 있 습 니 다.
텍스트="<%\#Eval('Name')%>"로 쓰 지 마 십시오.<%%>는 문자열 이 아 닌 C\#코드 이기 때 문 입 니 다.
서버 컨트롤 에 도 사용 할 수 있 습 니 다.
DemoCode 및 주의 점 Repeater.aspx

<% @ Page Language="C#" AutoEventWireup="true" CodeBehind="Repeater.aspx.cs" Inherits ="WebForm.Repeater" %>
<! DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
< html xmlns ="http://www.w3.org/1999/xhtml">
< head runat ="server">
<title ></ title>
< style type ="text/css">
#tblist{ border-top :1px solid #000 ; border-left : 1px solid #000 ; margin: 0px auto ;width : 600px;}
#tblist td {border-bottom : 1px solid #000 ; border-right: 1px solid #000; padding :5px }
#didPanel {position : absolute; left :350px ; top: 200px ;width : 500px; height :70px ; border: 1px solid #000; background-color :Window ; padding: 15px ;display : none}
</style >
</ head>
< body>
<form id="form1" runat="server">
<asp : ObjectDataSource ID ="ObjectDataSource1" runat ="server"
SelectMethod ="getAllClasses" TypeName ="BLL.Classes">
< SelectParameters>
< asp: Parameter DefaultValue ="false" Name ="isDel" Type ="Boolean" />
</ SelectParameters>
</asp : ObjectDataSource>
<div >
<table id="tbList">
< asp: Repeater ID ="Repeater1" runat ="server" DataSourceID ="ObjectDataSource1">
< HeaderTemplate> <!-- -->
< tr>
< td> ID </td >
< td> Name </td >
< td> Count </td >
< td> Img </td >
< td> </td >
</ tr>
</ HeaderTemplate>
< ItemTemplate> <!-- -->
< tr>
< td>< input type ="text" value =" <%# Eval("CID")%> " /></ td >
< td>
< asp: TextBox ID ="TextBox1" runat ="server" Text ='<% # Eval("CName")%> '></asp : TextBox></ td >
< td> <% #Eval( "CCount" )%> </td >
< td>
<%--<img src="images/<%#Eval("CImg")%>" style="width:100px;height:80px;"/>--%>
<!-- images/ # images/《% 《% -->
< asp: Image ID ="Image1" runat ="server" ImageUrl ='<% # "images/"+Eval("CImg")%> ' Width ="100px" Height ="80px"/>
<!-- : OnClick , Repeater ItemCommand 。-->
</ td>
</ tr>
</ ItemTemplate>
< SeparatorTemplate> <!-- -->
< tr>
< td colspan ="5" style ="background-color :red; height:2px; line-height :3px;"></td >
</ tr>
</ SeparatorTemplate>
< AlternatingItemTemplate> <!-- -->
< tr style ="background-color :Gray">
< td>< input type ="text" value =" <%# Eval("CID")%> " /></ td >
< td>
< asp: TextBox ID ="TextBox1" runat ="server" Text ='<% # Eval("CName")%> '></asp : TextBox></ td >
< td> <% #Eval( "CCount" )%> </td >
< td> <% #Eval( "CImg" )%> </td >
< td>
< asp: Button ID ="btnDel" runat ="server" Text =" " OnCommand ="Button_OnClick" CommandName ="Del" CommandArgument ='<% # Eval("CID")%> '/>
</ td>
</ tr>
</ AlternatingItemTemplate>
< FooterTemplate> <!-- -->
< tr>
< td colspan ="5"> </ td>
</ tr>
</ FooterTemplate>

</ asp: Repeater >
</table >
</div >
</form >
</ body>
</ html>
Repeater.aspx.cs

using System;
using System.Web.UI.WebControls;
namespace WebForm {
public partial class Repeater : System.Web.UI. Page {
protected void Page_Load( object sender, EventArgs e) {
}
protected void Button_OnClick( object sender, CommandEventArgs e) {
//Response.Write("CommandArgument" + e.CommandArgument + "CommandName" + e.CommandName + " " + DateTime.Now); CommandArgument CommandName
if (new BLL. Classes().SoftDel( Convert .ToInt32(e.CommandArgument)) > 0) {
Response.Write( " " );
Repeater1.DataBind(); // Repeater __VIEWSTATE
} else {
Response.Write( " " );
}
}
}
}
효과 도:

ListView
Repeater 는 일반적으로 데 이 터 를 보 여 주 는 데 만 사용 되 며,삭제 수정(CRUD)을 하려 면 ListView 를 사용 하 는 것 이 편리 하 다.마법 사 를 사용 하면 ListView 는 손 으로 쓴 템 플 릿 코드 의 번 거 로 움 을 없 애고 필요 할 때 손 으로 조정 하면 됩 니 다.
 Repeater 와 같이 데이터 원본 을 설정 한 다음 스마트 알림 의'ListView 설정'을 클릭 하고 레이아웃 과 스타일 을 선택 한 다음 필요 에 따라'편집 사용','삭제 사용','삽입 사용','페이지 사용'을 선택 하면 자주 사용 하 는 템 플 릿 이 자동 으로 생 성 됩 니 다.
효과 그림 유사:

ListView 의 기본 페이지 는 데이터 원본 에서 모든 데 이 터 를 얻 은 다음 에 현재 페이지 의 부분 을 캡 처 하 는 것 입 니 다.데이터 양 이 매우 많은 상황 에서 효율 이 매우 낮 기 때문에 기본 페이지 는 기본적으로 사용 할 수 없습니다.데이터 원본 에서 만 표시 할 데 이 터 를 가 져 올 것 입 니 다.상세 한 것 은 다음 장 을 참조 하 시 오어떻게 ListView 의 효율 적 인 페이지 를 실현 합 니까?
같은 내용 점 은 에 붙 인 코드 를 참조 할 수 있다.
LayoutTemplate 는 레이아웃 템 플 릿 입 니 다.레이아웃 템 플 릿 에는 아 이 템 플레이 스 holder 라 는 서버 컨트롤 이 있어 야 합 니 다.항목 의 자리 표시 자(FrameWork 4.0 이후 필요 하지 않 습 니 다)가 있어 야 합 니 다.아 이 템 플레이 스 holder 앞 에는 Repeater 의 HeaderTemplate 에 해당 합 니 다.아 이 템 플레이 스 holder 뒤 에는 Repeater 의 Footer Template 에 해당 하기 때문에 ListView 에는 이 두 템 플 릿 이 없습니다.
ItemTemplate 는 모든 템 플 릿 입 니 다.Alternating ItemTemplate 는 줄 을 사이 에 두 고 표시 되 는 템 플 릿 입 니 다.Repeater 와 같 습 니 다.
EmptyDataTemplate 는 데이터 원본 에 데이터 가 없 을 때 표시 되 는 콘 텐 츠(Insert 도 데이터 로 계산)로'검색 결과 가 없습니다','맞 출 수 없습니다.찾 으 려 는 데 이 터 를 찾 을 수 없습니다'등 알림 콘 텐 츠 를 구현 할 수 있 습 니 다.
InsertItemTemplate 는 데이터 인터페이스 를 삽입 하 는 템 플 릿 입 니 다.
EditItemTemplate 는 데 이 터 를 편집 하 는 템 플 릿 입 니 다.
Selected ItemTemplate 는 Selected 줄 로 표 시 된 템 플 릿 입 니 다.
데이터 원본 설정 은 상기 장 참조 Asp.Net 의 데이터 원본

좋은 웹페이지 즐겨찾기