关于Repeater

来源:互联网 发布:php post html代码 编辑:程序博客网 时间:2024/06/09 18:39

一.Repeater控件的应用:

1.DataGrid控件对数据输出格式是自动生成HtmlTable标记的,DataList控件也是这样,它根据数据内容来生成数据控制表格。而Repeater控件是模板化的数据绑定列表,Repeater控件是“无外观的”,即:它不具有任何内置布局或样式,也就不会产生任何数据控制表格来控制数据的显示。因此,我们必须在控件的模板中明确声明所有HTML 布局标记、格式标记和样式标记。

 Repeater控件是个轻量级的数据绑定控件,一般用它来输出要求相对简单的数据。

 

下面就是一个Repeater的应用:

<asp:Repeater runat="server" ID="Repeater_NEWS"OnItemCommand="Repeater_NEWS_ItemCommand"> 
               <HeaderTemplate>
               <table width="100%" border="0" cellspacing="1"cellpadding="1"  class="STYLE4"bgcolor="#717171">
               <tr bgcolor="#E8EFF4" height="23" align="center"class="STYLE5">
                   <td width="50px"class="STYLE5">序号</td>
                   <tdwidth="70px">是否置顶</td>
                   <td>标题</td>
                   <tdwidth="80px">类型</td>
                   
                    <tdwidth="80px">审核状态</td>
                     <tdwidth="90px">类型注册时间</td>
                   
                   <tdwidth="50px">操作</td>
                   <tdwidth="50px">操作</td>
               </tr>
               </HeaderTemplate>          
               <ItemTemplate>          
               <tr bgcolor="#ffffff" height="23"align="center" class="STYLE7">                
                   <td width="50px"><%#DataBinder.(Container.DataItem,"IDITEM")%></td>
                   <td width="70px"><%#DataBinder.(Container.DataItem,"S_STopV")%></td>
                   <td><%#DataBinder.(Container.DataItem,"V_Title")%></td>
                   <td width="80px"><%#DataBinder.(Container.DataItem,"TitleName")%></td>
                   
                   <td width="80px"><%#DataBinder.(Container.DataItem,"S_AdStateV")%></td>
                   <td width="90px"><%#DataBinder.(Container.DataItem,"D_InTime")%></td>
                   
                   
                   <td width="50px"><ahref='News.aspx?PageLB=XG&Pa_AdState=1&NewSID=<%#DataBinder.(Container.DataItem,"ID")%>' target="_blank">审核</a></td>
                   <tdwidth="50px"><asp:LinkButtonID="lb_del" runat="server" CommandArgument='<%#DataBinder.(Container.DataItem,"ID") %>'CommandName="del" OnClientClick="returnconfirm('是否删除?');">删除</asp:LinkButton></td>
                  </tr>                 
               </ItemTemplate>
               <AlternatingItemTemplate>             
                   <tr bgcolor="#FFFFFF" height="23"align="center" class="STYLE7">
                   <td width="50px"><%#DataBinder.(Container.DataItem,"IDITEM")%></td>
                   <td width="70px"><%#DataBinder.(Container.DataItem,"S_STopV")%></td>
                   <td><%#DataBinder.(Container.DataItem,"V_Title")%></td>
                   <td width="80px"><%#DataBinder.(Container.DataItem,"TitleName")%></td>
                   
                   <td width="80px"><%#DataBinder.(Container.DataItem,"S_AdStateV")%></td>
                   <td width="90px"><%#DataBinder.(Container.DataItem,"D_InTime")%></td>
                   <td width="50px"><ahref='News.aspx?PageLB=XG&Pa_AdState=1&NewSID=<%#DataBinder.(Container.DataItem, "ID")%>'target="_blank">审核</a></td>
                   <tdwidth="50px"><asp:LinkButtonID="lb_del" runat="server" CommandArgument='<%#DataBinder.(Container.DataItem,"ID") %>'CommandName="del" OnClientClick="returnconfirm('是否删除?');">删除</asp:LinkButton></td>
 
                  </tr>
                  
               </AlternatingItemTemplate>
               <FooterTemplate>
               </table>
               </FooterTemplate>
               </asp:Repeater>

 

2.Repeater控件的删除按钮事件——和GridView控件原理一样,但是具体做法不同:

(1)页面:

    <ItemTemplate>
       <tr bgcolor="#ffffff" height="23"align="center" class="STYLE7">
            <td><%#DataBinder.eval_r(Container.DataItem,"ID")%></td>
               <td><asp:Label runat="server" ID="lName" Text='<%#DataBinder.eval_r(Container.DataItem,"content")%>'></asp:Label></td>
               <td><%#DataBinder.eval_r(Container.DataItem,"content")%></td>
               <td><%#DataBinder.eval_r(Container.DataItem,"startTime")%></td>
               <td><%#DataBinder.eval_r(Container.DataItem,"endTime")%></td>
               <td><%#DataBinder.eval_r(Container.DataItem,"rate")%></td>
               <td><%#DataBinder.eval_r(Container.DataItem,"suggest")%></td>
               <td>
               <asp:Button ID="lbnAdd" runat="server"BackColor="Olive" Text="进度和建议" CommandArgument='<%#DataBinder.eval_r(Container.DataItem,"ID")%>' CommandName="ad"/>
               <asp:Button ID="btnDel" runat="server"BackColor="Olive" OnClientClick="returnconfirm('是否删除?');" CommandArgument='<%#DataBinder.eval_r(Container.DataItem,"ID")%>' Text="删除"CommandName="de"/>
               </td>
       </tr>

由于OnClick事件,里面规定些的字符串不能太长,所以用OnclientClick事件。

(2)后台:

 protected voidrptPlan_ItemCommand(object source, RepeaterCommandEventArgse)
         

        if(e.CommandName == "de")
       {
           string id = e.CommandArgument.ToString();
           int num = PlanManager.DelPlan(Convert.ToInt32(id));
           BindRepeater();
       }
   }

0 0