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

本文介绍了一个使用ASP.NET ListView控件实现数据编辑的例子。通过定义EditItemTemplate,可以在ListView中直接编辑数据,并通过SqlDataSource更新数据库。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

正如你所看到的,使用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更新数据库

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值