ASP.Net/Asp Control/Repeater — различия между версиями

Материал из .Net Framework эксперт
Перейти к: навигация, поиск
м (1 версия)
 
м (1 версия)
 
(нет различий)

Текущая версия на 14:52, 26 мая 2010

ItemTemplate in a repeater

   <source lang="csharp">

<%@ Page %> <%@ import Namespace="System.Data" %> <%@ import Namespace="System.Data.SqlClient" %> <script runat="server">

   Sub Page_Load(sender as Object, e as EventArgs)
      Const strConnString as String = "server=localhost;uid=sa;pwd=;database=pubs"
      Dim objConn as New SqlConnection(strConnString)
   
     Const strSQL as String = "SELECT * FROM authors"
     Dim objCmd as New SqlCommand(strSQL, objConn)
   
     Dim objDA as New SqlDataAdapter()
     objDA.SelectCommand = objCmd
   
     Dim objDS as New DataSet()
     objDA.Fill(objDS)
     objConn.Close()
   
     rptAuthors.DataSource = objDS
     rptAuthors.DataBind()
   End Sub

</script> <asp:repeater id="rptAuthors" runat="server">

 <HeaderTemplate>
</HeaderTemplate> <ItemTemplate> </ItemTemplate> <FooterTemplate>
       <%# DataBinder.Eval(Container.DataItem, "au_lname") %>,
       <%# DataBinder.Eval(Container.DataItem, "au_fname") %>
 </FooterTemplate>

</asp:repeater>

</source>
   
  


Repeater data binding

   <source lang="csharp">

<script language="C#" runat="server"> public class State {

   string _name;
   string _timezone;
   public State(string name, string timezone) {
       _name = name;
       _timezone = timezone;
   }
   public string Name {
       get { return _name; }
   }
   public string TimeZone {
       get { return _timezone; }
   }

} protected void Page_Load(object o, EventArgs e) {

   if(!IsPostBack) {
       ArrayList states = new ArrayList();
       states.Add(new State("Washington", "Pacific"));
       states.Add(new State("Utah", "Mountain"));
       repeaterVertical.DataSource = states;
       repeaterHorizontal.DataSource = states;
       repeaterVertical.DataBind();
       repeaterHorizontal.DataBind();
   }

} </script> <form runat="server">

   <asp:Repeater runat="server" id="repeaterVertical">
       <HeaderTemplate>
       </HeaderTemplate>
       <ItemTemplate>
</ItemTemplate> <SeparatorTemplate></SeparatorTemplate>
       <AlternatingItemTemplate>
</AlternatingItemTemplate> <FooterTemplate>
StateTimeZone
<%#((State)(Container.DataItem)).Name %> <%#DataBinder.Eval(Container, "DataItem.TimeZone") %>

<%#((State)(Container.DataItem)).Name %> <%#DataBinder.Eval(Container, "DataItem.TimeZone") %>
</FooterTemplate>
   </asp:Repeater>
  <asp:Repeater runat="server" id="repeaterHorizontal">
<HeaderTemplate>
      </HeaderTemplate>
      <ItemTemplate>
</ItemTemplate> <AlternatingItemTemplate> </AlternatingItemTemplate> <FooterTemplate>
State
TimeZone
           <%#DataBinder.Eval(Container.DataItem, "Name") %>
<%#DataBinder.Eval(Container.DataItem, "TimeZone") %>
           <%#DataBinder.Eval(Container.DataItem, "Name") %>
<%#DataBinder.Eval(Container.DataItem, "TimeZone") %>
</FooterTemplate>

</asp:Repeater> </form>

</source>
   
  


SelectedItemTemplate in repeater

   <source lang="csharp">

<%@ Page Language="C#" %> <%@ import Namespace="System.Data" %> <%@ import Namespace="System.Data.SqlClient" %> <script runat="server" language="C#">

   void Page_Load(object sender, EventArgs e)
   {
     if (!Page.IsPostBack)
       BindData();
   }
   void BindData()
   {
     const string strConnString = "server=localhost;uid=sa;pwd=;database=pubs";
     SqlConnection objConn = new SqlConnection(strConnString);
   
     const string strSQL = "SELECT * FROM titles";
     SqlCommand objCmd = new SqlCommand(strSQL, objConn);
   
     objConn.Open();
   
     dlTitles.DataSource = objCmd.ExecuteReader(CommandBehavior.CloseConnection);
     dlTitles.DataBind();
   
     objConn.Close();
   }
   void DisplayBookDetails(object sender, EventArgs e)
   {
     BindData();
   }

</script> <form runat="server">

 <asp:DataList runat="server" 
               id="dlTitles"
               OnSelectedIndexChanged="DisplayBookDetails"
               Font-Name="Verdana" 
               Font-Size="11pt"
               ItemStyle-BackColor="#eeeeee"
               AlternatingItemStyle-BackColor="White"
               HorizontalAlign="Center" CellPadding="8">
   
   <ItemTemplate>
     <%# DataBinder.Eval(Container.DataItem, "title") %>
     [<asp:LinkButton 
           runat="server" CommandName="Select"
           Text="View Book Details" />]
   </ItemTemplate>
   
   <SelectedItemTemplate>
Title: <%# DataBinder.Eval(Container.DataItem, "title") %>
Type: <%# DataBinder.Eval(Container.DataItem, "type") %>
Notes: <%# DataBinder.Eval(Container.DataItem, "notes") %>
   </SelectedItemTemplate>
 </asp:DataList>

</form>

</source>
   
  


SeparatorTemplate in a repeater

   <source lang="csharp">

<%@ Page Language="vb" %> <%@ import Namespace="System.Data" %> <%@ import Namespace="System.Data.SqlClient" %> <script runat="server">

   Sub Page_Load(sender as Object, e as EventArgs)
     If Not Page.IsPostBack then
       BindData()
     End If
   End Sub
   
   
   Sub BindData()
     Const strConnString as String = "server=localhost;uid=sa;pwd=;database=pubs"
     Dim objConn as New SqlConnection(strConnString)
   
     Const strSQL as String = "SELECT * FROM titles"
     Dim objCmd as New SqlCommand(strSQL, objConn)
   
     objConn.Open()   "Open the connection
   
     rptTitles.DataSource = objCmd.ExecuteReader(CommandBehavior.CloseConnection)
     rptTitles.DataBind()
   
     objConn.Close()   "Close the connection
   End Sub
   
   
   Sub rptTitles_ItemCommand(sender As Object, e As RepeaterCommandEventArgs)
     If e.rumandName = "Details" then
       Dim lc as Label = e.Item.FindControl("lblTitleID")
       Dim strTitleID as String = lc.Text
     End If
   End Sub

</script> <form runat="server">

 <asp:Repeater runat="server" id="rptTitles"
       OnItemCommand="rptTitles_ItemCommand">
   <ItemTemplate>
     Title: <%# DataBinder.Eval(Container.DataItem, "title") %>
     
[<asp:LinkButton runat="server" id="btnDetails" Text="View Book Details" CommandName="Details" />] <asp:label id="lblTitleID" Visible="False" runat="Server" Text="<%# DataBinder.Eval(Container.DataItem, "title_id") %>" /> </ItemTemplate> <SeparatorTemplate>

   </SeparatorTemplate>
 </asp:Repeater>

</form>

</source>