您的位置:首页 > 编程语言 > ASP

在ASP.NET 3.5中使用新的ListView控件(4)

2010-11-19 11:10 375 查看
正如你所看到的,使用ListView控件显示数据相对要直接得多,但你还可以让用户在ListView中直接编辑数据,添加一个新页面ListViewEditExample.aspx,它的代码如清单2所示。

  清单2.编辑ListView

  <%@ Page Language="C#" %>

  <script runat="server">

  void deptsView_ItemUpdated(object sender,

  ListViewUpdatedEventArgs e)

  {

  lblResult.Text = e.AffectedRows.ToString() +

  " row(s) successfully updated";

  }

  void deptsView_PagePropertiesChanged(object sender, EventArgs e)

  {

  //Set the text to empty when navigating to a different page

  lblResult.Text = "";

  }

  </script>

  <html xmlns="http://www.w3.org/1999/xhtml">

  <head runat="server">

  <link rel="Stylesheet" type="text/css" href="StyleSheet.css" />

  <title>Editing Data using ListView Control</title>

  </head>

  <body>

  <form id="form1" runat="server">

  <div>

  <asp:ListView ID="ContactsListView" DataSourceID="deptSource"

DataKeyNames="DepartmentID" runat="server"

OnItemUpdated="deptsView_ItemUpdated"

OnPagePropertiesChanged="deptsView_PagePropertiesChanged">  DataKeyNames="DepartmentID" runat="server"

  OnItemUpdated="deptsView_ItemUpdated"

  OnPagePropertiesChanged="deptsView_PagePropertiesChanged">

  <LayoutTemplate>

  >  runat="server" id="tblProducts">

  <tr id="row1" runat="server" class="header">

  <th id="header2" runat="server">Name</th>

  <th id="header3" runat="server">Group Name</th>

  <th id="header1" runat="server">Action</th>

  </tr>

  <tr runat="server" id="itemPlaceholder" />

  </table>

  <asp:DataPager runat="server" ID="deptsDataPager"

PageSize="3">  PageSize="3">

  <Fields>

  <asp:NextPreviousPagerField ShowFirstPageButton="True"

ShowLastPageButton="True" FirstPageText="|<  ShowLastPageButton="True" FirstPageText="|<< "

  LastPageText=" >>|" NextPageText=" >"

  PreviousPageText=" <" />

  </Fields>

  </asp:DataPager>

  </LayoutTemplate>

  <ItemTemplate>

  <tr id="row2" runat="server">

  <td>

  <asp:Label ID="lblName" runat="Server"

Text='<  Text='<%#Eval("Name") %>' />

  </td>

  <td valign="top">

  <asp:Label ID="lblGroupName" runat="Server"

Text='<  Text='<%#Eval("GroupName") %>' />

  </td>

  <td>

  <asp:LinkButton ID="btnEdit" runat="Server" Text="Edit"

CommandName="Edit" />  CommandName="Edit" />

  </td>

  </tr>

  </ItemTemplate>

  <EditItemTemplate>

  <tr style="background-color: #ADD8E6">

  <td>

  <asp:TextBox ID="txtName" runat="server"

Text='<  Text='<%# Bind("Name") %>'

  MaxLength="50" /><br />

  </td>

  <td>

  <asp:TextBox ID="txtGroupName" runat="server" Text='<%#

  Bind("GroupName") %>' MaxLength="50" /><br />

  </td>

  <td>

  <asp:LinkButton ID="btnUpdate" runat="server"

CommandName="Update" Text="Update" />  CommandName="Update" Text="Update" />

  <asp:LinkButton ID="btnCancel" runat="server"

CommandName="Cancel" Text="Cancel" />  CommandName="Cancel" Text="Cancel" />

  </td>

  </tr>

  </EditItemTemplate>

  </asp:ListView>

  <asp:SqlDataSource ID="deptSource" runat="server"

ConnectionString="<  ConnectionString="<%$ ConnectionStrings:AdventureWorks %>"

  SelectCommand="SELECT [DepartmentID],[Name],[GroupName] FROM

  HumanResources.Department" UpdateCommand="UPDATE

  HumanResources.Department SET Name = @Name,

  GroupName = @GroupName WHERE DepartmentID = @DepartmentID">

  </asp:SqlDataSource>

  <br /><br />

  <asp:Label runat="server" ID="lblResult" Text=""

Font-Bold="true" />  Font-Bold="true" />

  </div>

  </form>

  </body>

  </html>

  清单2的代码说明了如何使用EditItemTemplate组件在编辑模式下生成内容,然后通过SqlDataSource更新数据库
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: