码迷,mamicode.com
首页 > 其他好文 > 详细

Repeater的ItemCommand事件

时间:2014-11-15 01:26:03      阅读:174      评论:0      收藏:0      [点我收藏+]

标签:style   blog   http   io   color   ar   os   使用   sp   

Repeater一般只用来展示数据,如果要增删改查(CRUD)则用ListView更方便。

使用向导(强类型数据)来使用ListView会自动生成很多模板,免去手写模板代码的麻烦,再进行手工调整即可。 首先设定数据源,然后点击智能提示中的“配置ListView”,选择一种布局和样式,然后根据需要勾选“启用编辑”、“启用删除”、“启用插入”、“启用分页”,就会自动生成常用的模板。注意这只是提高开发效率的一个快捷方式,不是唯一的途径。

【LayoutTemplate】为布局模板,布局模板中必须有一个ID为【itemPlaceholder】的服务端控件,项占位符(4.0以后不需要),什么类型无所谓,不会被显示,itemPlaceholder前面就是相当于Repeater中的HeaderTemplate,itemPlaceholder后面就是相当于Repeater中的FooterTemplate,因此ListView中没有这两个模板。

【ItemTemplate】是每一项的模板,AlternatingItemTemplate是隔行显示的模板,和Repeater一样。EmptyDataTemplate为数据源没有数据的时候显示的内容(Insert也算数据),这样的话可以实现“没有查找结果”、“对不起,找不到您要找的数据”等,InsertItemTemplate为插入数据界面的模板,EditItemTemplate为编辑数据的模板,InsertItemTemplate,为插入数据的模板,SelectedItemTemplate为标记为Selected的行的模板。

1、生成的样式要提到style中,不要内联样式。

2、ItemTemplate里面一般也没必要用<asp:Label展示只读数据,所以直接输出<%# Eval("Name") %>

3、LayoutTemplate中必须有一个id为itemPlaceholder的服务端控件,之上为头,之下为尾。

4、LayoutTemplate表头内容要汉化,所有Template中的不需要显示的字段,比如Id,都要删掉。

bubuko.com,布布扣
  1 <%@ Page Title="" Language="C#" MasterPageFile="~/MasterPage.master" AutoEventWireup="true" CodeBehind="5ListView.aspx.cs" Inherits="Maticsoft.Web._5ListView" %>
  2 
  3 <asp:Content ID="Content1" ContentPlaceHolderID="head" runat="server">
  4 </asp:Content>
  5 <asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="server">
  6 
  7     <asp:ListView ID="ListView1" runat="server" DataKeyNames="TypeId" DataSourceID="ObjectDataSource1" InsertItemPosition="LastItem">
  8         <AlternatingItemTemplate>
  9             <tr style="background-color: #FFFFFF;color: #284775;">
 10                 <td >
 11                     <asp:Button ID="DeleteButton" runat="server" CommandName="Delete" Text="删除" />
 12                     <asp:Button ID="EditButton" runat="server" CommandName="Edit" Text="编辑" />
 13                 </td>
 14 <%--                <td>
 15                     <asp:Label Visible="false" ID="TypeIdLabel" runat="server" Text=<%# Eval("TypeId") %> />
 16                 </td>--%>
 17                 <td>
 18                     <asp:Label ID="TypeNameLabel" runat="server" Text=<%# Eval("TypeName") %> />
 19                 </td>
 20                 <td>
 21                     <asp:Label ID="PriceLabel" runat="server" Text=<%# Eval("Price") %> />
 22                 </td>
 23                 <td>
 24                     <asp:CheckBox ID="AddBedCheckBox" runat="server" Checked=<%# Eval("AddBed") %> Enabled="false" />
 25                 </td>
 26                 <td>
 27                     <asp:Label ID="BedPriceLabel" runat="server" Text=<%# Eval("BedPrice") %> />
 28                 </td>
 29                 <td>
 30                     <asp:Label ID="RemarkLabel" runat="server" Text=<%# Eval("Remark") %> />
 31                 </td>
 32             </tr>
 33         </AlternatingItemTemplate>
 34         <EditItemTemplate>
 35             <tr style="background-color: #999999;">
 36                 <td >
 37                     <asp:Button ID="UpdateButton" runat="server" CommandName="Update" Text="更新" />
 38                     <asp:Button ID="CancelButton" runat="server" CommandName="Cancel" Text="取消" />
 39                 </td>
 40 <%--                <td>
 41                     <asp:TextBox Visible="false" ID="TypeIdTextBox" runat="server" Text=<%# Bind("TypeId") %> />
 42                 </td>--%>
 43                 <td>
 44                     <asp:TextBox ID="TypeNameTextBox" runat="server" Text=<%# Bind("TypeName") %> />
 45                 </td>
 46                 <td>
 47                     <asp:TextBox ID="PriceTextBox" runat="server" Text=<%# Bind("Price") %> />
 48                 </td>
 49                 <td>
 50                     <asp:CheckBox ID="AddBedCheckBox" runat="server" Checked=<%# Bind("AddBed") %> />
 51                 </td>
 52                 <td>
 53                     <asp:TextBox ID="BedPriceTextBox" runat="server" Text=<%# Bind("BedPrice") %> />
 54                 </td>
 55                 <td>
 56                     <asp:TextBox ID="RemarkTextBox" runat="server" Text=<%# Bind("Remark") %> />
 57                 </td>
 58             </tr>
 59         </EditItemTemplate>
 60         <EmptyDataTemplate>
 61             <table runat="server" style="background-color: #FFFFFF;border-collapse: collapse;border-color: #999999;border-style:none;border-width:1px;">
 62                 <tr>
 63                     <td>未返回数据。</td>
 64                 </tr>
 65             </table>
 66         </EmptyDataTemplate>
 67         <InsertItemTemplate>
 68             <tr style="">
 69                 <td >
 70                     <asp:Button ID="InsertButton" runat="server" CommandName="Insert" Text="插入" />
 71                     <asp:Button ID="CancelButton" runat="server" CommandName="Cancel" Text="清除" />
 72                 </td>
 73 <%--                <td>
 74                     <asp:TextBox Visible="false" ID="TypeIdTextBox" runat="server" Text=<%# Bind("TypeId") %> />
 75                 </td>--%>
 76                 <td>
 77                     <asp:TextBox ID="TypeNameTextBox" runat="server" Text=<%# Bind("TypeName") %> />
 78                 </td>
 79                 <td>
 80                     <asp:TextBox ID="PriceTextBox" runat="server" Text=<%# Bind("Price") %> />
 81                 </td>
 82                 <td>
 83                     <asp:CheckBox ID="AddBedCheckBox" runat="server" Checked=<%# Bind("AddBed") %> />
 84                 </td>
 85                 <td>
 86                     <asp:TextBox ID="BedPriceTextBox" runat="server" Text=<%# Bind("BedPrice") %> />
 87                 </td>
 88                 <td>
 89                     <asp:TextBox ID="RemarkTextBox" runat="server" Text=<%# Bind("Remark") %> />
 90                 </td>
 91             </tr>
 92         </InsertItemTemplate>
 93         <ItemTemplate>
 94             <tr style="background-color: #E0FFFF;color: #333333;">
 95                 <td >
 96                     <asp:Button ID="DeleteButton" runat="server" CommandName="Delete" Text="删除" />
 97                     <asp:Button ID="EditButton" runat="server" CommandName="Edit" Text="编辑" />
 98                 </td>
 99               <%--  <td>
100                     <asp:Label Visible="false" ID="TypeIdLabel" runat="server" Text=<%# Eval("TypeId") %> />
101                 </td>--%>
102                 <td>
103                     <asp:Label ID="TypeNameLabel" runat="server" Text=<%# Eval("TypeName") %> />
104                 </td>
105                 <td>
106                     <asp:Label ID="PriceLabel" runat="server" Text=<%# Eval("Price") %> />
107                 </td>
108                 <td>
109                     <asp:CheckBox ID="AddBedCheckBox" runat="server" Checked=<%# Eval("AddBed") %> Enabled="false" />
110                 </td>
111                 <td>
112                     <asp:Label ID="BedPriceLabel" runat="server" Text=<%# Eval("BedPrice") %> />
113                 </td>
114                 <td>
115                     <asp:Label ID="RemarkLabel" runat="server" Text=<%# Eval("Remark") %> />
116                 </td>
117             </tr>
118         </ItemTemplate>
119         <LayoutTemplate>
120             <table runat="server">
121                 <tr runat="server">
122                     <td runat="server">
123                         <table id="itemPlaceholderContainer" runat="server" border="1" style="background-color: #FFFFFF;border-collapse: collapse;border-color: #999999;border-style:none;border-width:1px;font-family: Verdana, Arial, Helvetica, sans-serif;">
124                             <tr runat="server" style="background-color: #E0FFFF;color: #333333;">
125                                 <th runat="server" ></th>
126                                 <%--<th runat="server">TypeId</th>--%>
127                                 <th runat="server" style="width:800px">TypeName</th>
128                                 <th runat="server">Price</th>
129                                 <th runat="server">AddBed</th>
130                                 <th runat="server">BedPrice</th>
131                                 <th runat="server">Remark</th>
132                             </tr>
133                             <tr id="itemPlaceholder" runat="server">
134                             </tr>
135                         </table>
136                     </td>
137                 </tr>
138                 <tr runat="server">
139                     <td runat="server" style="text-align: center;background-color: #5D7B9D;font-family: Verdana, Arial, Helvetica, sans-serif;color: #FFFFFF">
140                         <asp:DataPager ID="DataPager1" runat="server">
141                             <Fields>
142                                 <asp:NextPreviousPagerField ButtonType="Button" ShowFirstPageButton="True" ShowLastPageButton="True" />
143                             </Fields>
144                         </asp:DataPager>
145                     </td>
146                 </tr>
147             </table>
148         </LayoutTemplate>
149         <SelectedItemTemplate>
150             <tr style="background-color: #E2DED6;font-weight: bold;color: #333333;">
151                 <td >
152                     <asp:Button ID="DeleteButton" runat="server" CommandName="Delete" Text="删除" />
153                     <asp:Button ID="EditButton" runat="server" CommandName="Edit" Text="编辑" />
154                 </td>
155 <%--                <td>
156                     <asp:Label Visible="false" ID="TypeIdLabel" runat="server" Text=<%# Eval("TypeId") %> />
157                 </td>--%>
158                 <td>
159                     <asp:Label ID="TypeNameLabel" runat="server" Text=<%# Eval("TypeName") %> />
160                 </td>
161                 <td>
162                     <asp:Label ID="PriceLabel" runat="server" Text=<%# Eval("Price") %> />
163                 </td>
164                 <td>
165                     <asp:CheckBox ID="AddBedCheckBox" runat="server" Checked=<%# Eval("AddBed") %> Enabled="false" />
166                 </td>
167                 <td>
168                     <asp:Label ID="BedPriceLabel" runat="server" Text=<%# Eval("BedPrice") %> />
169                 </td>
170                 <td>
171                     <asp:Label ID="RemarkLabel" runat="server" Text=<%# Eval("Remark") %> />
172                 </td>
173             </tr>
174         </SelectedItemTemplate>
175     </asp:ListView>
176     <asp:ObjectDataSource ID="ObjectDataSource1" runat="server" DataObjectTypeName="Maticsoft.Model.RoomType" DeleteMethod="Delete" InsertMethod="Add" SelectMethod="GetModelList" TypeName="Maticsoft.BLL.RoomType" UpdateMethod="Update">
177         <SelectParameters>
178             <asp:Parameter Name="strWhere" Type="String" />
179         </SelectParameters>
180     </asp:ObjectDataSource>
181 
182 </asp:Content>
View Code

----------------------------------------------------------------------------------------------------------------------------------------

Repeater控件可以在模板中放置Button控件【Button】、【LinkButton】、【ImageButton】,模板中的按钮一般不写OnClick事件响应而是响应Repeater的ItemCommand事件

Button控件设定【CommandName】、【CommandArgument】属性,然后在ItemDataBound事件读取e的CommandName、CommandArgument属性就可以获得发生事件的命令和行参数了。

如果对数据进行了操作,则需要Repeater1.DataBind()来重新绑定,从数据库中刷新最新的数据

 1                 <tr onmouseover="changecolor(this)" onmouseout="returncolor(this)">
 2                     <td><%#Eval("TypeId") %></td>
 3                     <td><%#Eval("TypeName") %></td>
 4                     <td><asp:Label ID="lblprice" runat="server" Text=<%#Eval("Price") %>></asp:Label></td>
 5                     <td><%#Eval("AddBed") %></td>
 6                     <td><%#Eval("BedPrice") %></td>
 7                     <td><input type="text" value="<%#Eval("Remark") %>" readonly="readonly"/></td>
 8                     <td>
 9                         <asp:Button ID="btndel" runat="server" Text="删除" CommandName="del" CommandArgument=<%#Eval("TypeId") %>/>
10                         <asp:Button ID="btnedit" runat="server" Text="编辑" CommandName="edit" CommandArgument=<%#Eval("TypeId") %>/>
11                     </td>
12                 </tr>
 1         protected void Repeater1_ItemCommand(object source, RepeaterCommandEventArgs e)
 2         {
 3             int id = Convert.ToInt32(e.CommandArgument);
 4 
 5             if (e.CommandName == "del")
 6             {
 7                 if (bll.Delete(id))
 8                 {
 9                     Maticsoft.Common.MessageBox.Show(this, id.ToString()+"删除成功");
10                     Repeater1.DataBind();//需要Repeater1.DataBind()来重新绑定,从数据库中刷新最新的数据
11                 }                
12             }
13             else if (e.CommandName == "edit")
14             {
15                 Maticsoft.Common.MessageBox.Show(this, id.ToString());
16             }
17         }

Repeater的ItemCommand事件

标签:style   blog   http   io   color   ar   os   使用   sp   

原文地址:http://www.cnblogs.com/skyl/p/4098609.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!