zoukankan      html  css  js  c++  java
  • 【ASP.NET】Repeater

    Repeater常用事件:    

      Repeater有两个事件比较常用,①:Repeater1_ItemDataBound;②:Repeater1_ItemCommand;第一个事件net小伙已经在【ASP.NET】ItemDataBound之repeater 和 listview 写过了。现在叙述第二个事件。

      从MSDN上可以看出,如果在Repeater中插入一个按钮的时候,执行此按钮的OnClick事件的时候需要借助此事件来完成。

      在Repeater中插入按钮的时候要对按钮的源码进行设置:

    <asp:Button ID="Button1"  CommandName="bianji" runat="server" OnClientClick="return window.confirm('确认要通过吗? ')"  CommandArgument='<%#Eval("Title") %>' Text="通过" />

      从代码当中可以看出,在Button中插入了两个属性 ——CommandName和CommandArgument;

    CommandName的作用就是为了在后台可以找到此按钮,就像按钮的ID。CommandArgument的作用就是把所需要的参数传递到后台。

    后台代码如下:

    复制代码
     1         protected void Repeater1_ItemCommand(object source, RepeaterCommandEventArgs e)
     2         {
     3             if (e.CommandName == "bianji")
     4             {
     5                 modelnew.Title = e.CommandArgument.ToString();
     6                 if (dalnews.updatestate(modelnew))
     7                 {
     8                     Repeater1.DataBind();
     9                 }
    10                 
    11 
    12             }
    13         }
    复制代码

    Repeater分页功能:                                                                               

      Repeater不像其他的数据控件有内置的分页功能,如果想在Repeater中实现分页功能,需要借助PagedDataSource来实现分页。

    前台代码如下:

     1         <asp:Repeater ID="Repeater1" runat="server">
     2                         <HeaderTemplate>
     3                 <table width="100%" style="background-color: #ADD2DA">
     4                     <tr>
     5                         <td >id</td>
     6                         <td >新闻名</td>
     7                         <td >发布时间</td>
     8                       
     9                         <td >发布人</td>
    10                         <td>发布状态</td>
    11                     </tr>
    12                 
    13            </HeaderTemplate>
    14           <ItemTemplate>
    15             <tr style="background-color:#DCDCDC;color: #000000;">
    16 
    17 
    18                 <td style=""5%">
    19                     <asp:Label ID="idLabel"  runat="server" Text='<%# Eval("id") %>' />
    20                 </td>
    21 
    22                 <td style=""40%">
    23                     <asp:Label ID="TitleLabel" runat="server" Text='<%# Eval("Title") %>' />
    24                 </td>
    25 
    26 
    27 
    28                 <td style=""15%">
    29                     <asp:Label ID="DataTimeLabel" runat="server" Text='<%# Eval("DataTime") %>' />
    30                 </td>
    31 
    32 
    33                 <td style=""10%">
    34                     <asp:Label ID="UserNameLabel" runat="server" Text='<%# Eval("UserName") %>' />
    35                 </td>
    36                 <td style=""10%">
    37                     <asp:Label ID="Label1" runat="server" Text='<%# Eval("State") %>' />
    38                 </td>
    39 
    40 
    41             </tr>
    42         </ItemTemplate>
    43         <FooterTemplate></table></FooterTemplate>
    44         </asp:Repeater>
    45 
    46 
    47        <table border="1" width="100%">
    48            <tr><td align="center"> 
    49            <asp:LinkButton ID="lbtnFirstPage" runat="server" OnClick="lbtnFirstPage_Click">页首</asp:LinkButton> 
    50            <asp:LinkButton ID="lbtnpritPage" runat="server" OnClick="lbtnpritPage_Click">上一页</asp:LinkButton> 
    51            <asp:LinkButton ID="lbtnNextPage" runat="server" OnClick="lbtnNextPage_Click">下一页</asp:LinkButton> 
    52            <asp:LinkButton ID="lbtnDownPage" runat="server" OnClick="lbtnDownPage_Click">页尾</asp:LinkButton><br /> 
    53            第<asp:Label ID="labPage" runat="server" Text="Label"></asp:Label>页/共<asp:Label ID="LabCountPage" runat="server" Text="Label"></asp:Label>
    54 55            </td></tr> 
    56        </table>

    后台代码:

    1         protected void Page_Load(object sender, EventArgs e)
     2         {
     3             if (!IsPostBack)
     4             {
     5                 this.labPage.Text = "1";
     6                 this.fenye();
     7             }
     8         }
     9 
    10         void fenye()
    11         {
    12 
    13             //获取数据源
    14             PagedDataSource pds = new PagedDataSource();
    15             DataTable ds = getalldata();
    16             pds.DataSource = ds.DefaultView;
    17             //设置允许分页
    18             pds.AllowPaging = true;
    19             //设置在单页上显示的条数
    20             pds.PageSize = 5;
    21             //获取或设置当前页的索引
    22             pds.CurrentPageIndex = Int32.Parse(labPage.Text) - 1;
    23             //绑定控件的数据源
    24             Repeater1.DataSource = pds;
    25             Repeater1.DataBind();
    26             //设置页的总数
    27             LabCountPage.Text = pds.PageCount.ToString();
    28             //设置按钮的可操作性
    29             lbtnDownPage.Enabled = true;
    30             lbtnFirstPage.Enabled = true;
    31             lbtnNextPage.Enabled = true;
    32             lbtnpritPage.Enabled = true;
    33             if (pds.CurrentPageIndex < 1)
    34             {
    35                 lbtnFirstPage.Enabled = false;
    36                 lbtnpritPage.Enabled = false;
    37             }
    38             if (pds.CurrentPageIndex == pds.PageCount - 1)
    39             {
    40                 lbtnDownPage.Enabled = false;
    41                 lbtnNextPage.Enabled = false;
    42             }
    43 
    44 
    45     
    46         }
    47 
    48         DataTable getalldata()
    49         {
    50 
    51             using (SqlConnection cons = new SqlConnection("server = .; database = newsrelease; integrated security=SSPI;"))
    52             {
    53                 string liketitle = string.Format("select * from T_News");
    54                 SqlDataAdapter da = new SqlDataAdapter(liketitle, cons);
    55                 DataTable ds = new DataTable();
    56                 da.Fill(ds);
    57                 if (ds != null)
    58                 {
    59                     return ds;
    60                 }
    61                 else
    62                 {
    63                     return null;
    64                 }
    65 
    66             }
    67         }
    68 
    69         //设置首页按钮功能
    70         protected void lbtnFirstPage_Click(object sender, EventArgs e)
    71         {
    72             labPage.Text = "1";
    73             this.fenye();
    74         }
    75         //设置上一页按钮功能
    76         protected void lbtnpritPage_Click(object sender, EventArgs e)
    77         {
    78             labPage.Text = (Int32.Parse(labPage.Text) - 1).ToString();
    79             this.fenye();
    80         }
    81         //设置下一页按钮功能
    82         protected void lbtnNextPage_Click(object sender, EventArgs e)
    83         {
    84             labPage.Text = (Int32.Parse(labPage.Text) + 1).ToString();
    85             this.fenye();
    86         }
    87         //设置尾页按钮功能
    88         protected void lbtnDownPage_Click(object sender, EventArgs e)
    89         {
    90             labPage.Text = LabCountPage.Text;
    91             this.fenye();
    92         }



    怎么使Repeater的数据横着显示:                                                                            

    只需要设置Repeater的ItemTemplate绑定的数据以UL的形式显示,并且设置其CSS的样式向左边浮动即可,代码如下:

    1                         <asp:Repeater ID="Repeater1" runat="server" DataSourceID="ObjectDataSource1">
    2                             <ItemTemplate>
    3                                 <a href="typenews.aspx?type=<%#Eval("id") %>" class="home" >
    4                                     <ul style="float:left;font-size: x-large">
    5                                         <li><%#Eval("TypeName") %>&nbsp</li>
    6                                     </ul>
    7                                 </a>
    8                             </ItemTemplate>
    9                         </asp:Repeater>
    复制代码
    1                         <asp:Repeater ID="Repeater1" runat="server" DataSourceID="ObjectDataSource1">
    2                             <ItemTemplate>
    3                                 <a href="typenews.aspx?type=<%#Eval("id") %>" class="home" >
    4                                     <ul style="float:left;font-size: x-large">
    5                                         <li><%#Eval("TypeName") %>&nbsp</li>
    6                                     </ul>
    7                                 </a>
    8                             </ItemTemplate>
    9                         </asp:Repeater>
    复制代码
  • 相关阅读:
    程序员面视题解析
    Forms身份验证
    梅花雨日历控件
    系统架构师学习笔记_第四章(下)
    系统架构师学习笔记_第三章
    系统架构师学习笔记_第六章(上)
    系统架构师学习笔记_第五章(下)
    系统架构师学习笔记_第一章
    系统架构师学习笔记_第四章(上)
    系统架构师学习笔记_第五章(上)
  • 原文地址:https://www.cnblogs.com/cmblogs/p/3580464.html
Copyright © 2011-2022 走看看