标签: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,都要删掉。
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>
----------------------------------------------------------------------------------------------------------------------------------------
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 }
标签:style blog http io color ar os 使用 sp
原文地址:http://www.cnblogs.com/skyl/p/4098609.html