C# 从listview中提取数据
我有一个listview“ListView1”,它链接到客户mssql数据库中的客户表。现在,我已将C# 从listview中提取数据,c#,sql-server-2008,listview,web-applications,asp.net-4.0,C#,Sql Server 2008,Listview,Web Applications,Asp.net 4.0,我有一个listview“ListView1”,它链接到客户mssql数据库中的客户表。现在,我已将OnItemDeleting=“ArchiveBeforeDelete”添加到列表视图中,因为我希望在将客户从正常数据库中删除之前将其存档(移动到存档客户的数据库客户表)。我已经能够使用e.ItemIndex检索selectedindex,但现在我不知道如何使用该索引提取数据,更具体地说,就是提取CustomerID部分。我已经查看了属性和方法,但找不到一个有效的 编辑: 以下是.aspx页面中l
OnItemDeleting=“ArchiveBeforeDelete”
添加到列表视图中,因为我希望在将客户从正常数据库中删除之前将其存档(移动到存档客户的数据库客户表)。我已经能够使用e.ItemIndex
检索selectedindex,但现在我不知道如何使用该索引提取数据,更具体地说,就是提取CustomerID部分。我已经查看了属性和方法,但找不到一个有效的
编辑:
以下是.aspx页面中listview的代码
<asp:ListView ID="ListView1" runat="server" DataKeyNames="CustomerId"
DataSourceID="SqlDataSource1" OnItemDeleting= "ArchiveBeforeDelete">
<AlternatingItemTemplate>
<tr style="background-color: #FAFAD2;color: #284775;">
<td>
<asp:Button ID="ArchiveButton" runat="server" CommandName="Delete"
Text="Archive" />
<asp:Button ID="EditButton" runat="server" CommandName="Edit" Text="Edit" />
</td>
<td>
<asp:Label ID="CustomerIdLabel" runat="server"
Text='<%# Eval("CustomerId") %>' />
</td>
<td>
<asp:Label ID="CustomerStatusLabel" runat="server"
Text='<%# Eval("CustomerStatus") %>' />
</td>
<td>
<asp:Label ID="CustomerFirstNameLabel" runat="server"
Text='<%# Eval("CustomerFirstName") %>' />
</td>
<td>
<asp:Label ID="CustomerLastNameLabel" runat="server"
Text='<%# Eval("CustomerLastName") %>' />
</td>
<td>
<asp:Label ID="CompanyNameLabel" runat="server"
Text='<%# Eval("CompanyName") %>' />
</td>
<td>
<asp:Label ID="CustomerEmailLabel" runat="server"
Text='<%# Eval("CustomerEmail") %>' />
</td>
<td>
<asp:Label ID="CustomerTypeLabel" runat="server"
Text='<%# Eval("CustomerType") %>' />
</td>
<td>
<asp:Label ID="CustomerPhoneNumberLabel" runat="server"
Text='<%# Eval("CustomerPhoneNumber") %>' />
</td>
<td>
<asp:Label ID="CustomerSubscriptionTypeLabel" runat="server"
Text='<%# Eval("CustomerSubscriptionType") %>' />
</td>
<td>
<asp:Label ID="CustomerPaymentMethodLabel" runat="server"
Text='<%# Eval("CustomerPaymentMethod") %>' />
</td>
<td>
<asp:Label ID="CustomerPickUpDayLabel" runat="server"
Text='<%# Eval("CustomerPickUpDay") %>' />
</td>
<td>
<asp:Label ID="CustomerPickUpDay2Label" runat="server"
Text='<%# Eval("CustomerPickUpDay2") %>' />
</td>
</tr>
</AlternatingItemTemplate>
<EditItemTemplate>
<tr style="background-color: #FFCC66;color: #000080;">
<td>
<asp:Button ID="UpdateButton" runat="server" CommandName="Update"
Text="Update" />
<asp:Button ID="CancelButton" runat="server" CommandName="Cancel"
Text="Cancel" />
</td>
<td>
<asp:Label ID="CustomerIdLabel1" runat="server"
Text='<%# Eval("CustomerId") %>' />
</td>
<td>
<asp:TextBox ID="CustomerStatusTextBox" runat="server"
Text='<%# Bind("CustomerStatus") %>' />
</td>
<td>
<asp:TextBox ID="CustomerFirstNameTextBox" runat="server"
Text='<%# Bind("CustomerFirstName") %>' />
</td>
<td>
<asp:TextBox ID="CustomerLastNameTextBox" runat="server"
Text='<%# Bind("CustomerLastName") %>' />
</td>
<td>
<asp:TextBox ID="CompanyNameTextBox" runat="server"
Text='<%# Bind("CompanyName") %>' />
</td>
<td>
<asp:TextBox ID="CustomerEmailTextBox" runat="server"
Text='<%# Bind("CustomerEmail") %>' />
</td>
<td>
<asp:TextBox ID="CustomerTypeTextBox" runat="server"
Text='<%# Bind("CustomerType") %>' />
</td>
<td>
<asp:TextBox ID="CustomerPhoneNumberTextBox" runat="server"
Text='<%# Bind("CustomerPhoneNumber") %>' />
</td>
<td>
<asp:TextBox ID="CustomerSubscriptionTypeTextBox" runat="server"
Text='<%# Bind("CustomerSubscriptionType") %>' />
</td>
<td>
<asp:TextBox ID="CustomerPaymentMethodTextBox" runat="server"
Text='<%# Bind("CustomerPaymentMethod") %>' />
</td>
<td>
<asp:TextBox ID="CustomerPickUpDayTextBox" runat="server"
Text='<%# Bind("CustomerPickUpDay") %>' />
</td>
<td>
<asp:TextBox ID="CustomerPickUpDay2TextBox" runat="server"
Text='<%# Bind("CustomerPickUpDay2") %>' />
</td>
</tr>
</EditItemTemplate>
<EmptyDataTemplate>
<table runat="server"
style="background-color: #FFFFFF;border-collapse: collapse;border-color: #999999;border-style:none;border-width:1px;">
<tr>
<td>
No data was returned.</td>
</tr>
</table>
</EmptyDataTemplate>
<InsertItemTemplate>
<tr style="">
<td>
<asp:Button ID="InsertButton" runat="server" CommandName="Insert"
Text="Insert" />
<asp:Button ID="CancelButton" runat="server" CommandName="Cancel"
Text="Clear" />
</td>
<td>
</td>
<td>
<asp:TextBox ID="CustomerStatusTextBox" runat="server"
Text='<%# Bind("CustomerStatus") %>' />
</td>
<td>
<asp:TextBox ID="CustomerFirstNameTextBox" runat="server"
Text='<%# Bind("CustomerFirstName") %>' />
</td>
<td>
<asp:TextBox ID="CustomerLastNameTextBox" runat="server"
Text='<%# Bind("CustomerLastName") %>' />
</td>
<td>
<asp:TextBox ID="CompanyNameTextBox" runat="server"
Text='<%# Bind("CompanyName") %>' />
</td>
<td>
<asp:TextBox ID="CustomerEmailTextBox" runat="server"
Text='<%# Bind("CustomerEmail") %>' />
</td>
<td>
<asp:TextBox ID="CustomerTypeTextBox" runat="server"
Text='<%# Bind("CustomerType") %>' />
</td>
<td>
<asp:TextBox ID="CustomerPhoneNumberTextBox" runat="server"
Text='<%# Bind("CustomerPhoneNumber") %>' />
</td>
<td>
<asp:TextBox ID="CustomerSubscriptionTypeTextBox" runat="server"
Text='<%# Bind("CustomerSubscriptionType") %>' />
</td>
<td>
<asp:TextBox ID="CustomerPaymentMethodTextBox" runat="server"
Text='<%# Bind("CustomerPaymentMethod") %>' />
</td>
<td>
<asp:TextBox ID="CustomerPickUpDayTextBox" runat="server"
Text='<%# Bind("CustomerPickUpDay") %>' />
</td>
<td>
<asp:TextBox ID="CustomerPickUpDay2TextBox" runat="server"
Text='<%# Bind("CustomerPickUpDay2") %>' />
</td>
</tr>
</InsertItemTemplate>
<ItemTemplate>
<tr style="background-color: #FFFBD6;color: #333333;">
<td>
<asp:Button ID="ArchiveButton" runat="server" CommandName="Delete"
Text="Archive" />
<asp:Button ID="EditButton" runat="server" CommandName="Edit" Text="Edit" />
</td>
<td>
<asp:Label ID="CustomerIdLabel" runat="server"
Text='<%# Eval("CustomerId") %>' />
</td>
<td>
<asp:Label ID="CustomerStatusLabel" runat="server"
Text='<%# Eval("CustomerStatus") %>' />
</td>
<td>
<asp:Label ID="CustomerFirstNameLabel" runat="server"
Text='<%# Eval("CustomerFirstName") %>' />
</td>
<td>
<asp:Label ID="CustomerLastNameLabel" runat="server"
Text='<%# Eval("CustomerLastName") %>' />
</td>
<td>
<asp:Label ID="CompanyNameLabel" runat="server"
Text='<%# Eval("CompanyName") %>' />
</td>
<td>
<asp:Label ID="CustomerEmailLabel" runat="server"
Text='<%# Eval("CustomerEmail") %>' />
</td>
<td>
<asp:Label ID="CustomerTypeLabel" runat="server"
Text='<%# Eval("CustomerType") %>' />
</td>
<td>
<asp:Label ID="CustomerPhoneNumberLabel" runat="server"
Text='<%# Eval("CustomerPhoneNumber") %>' />
</td>
<td>
<asp:Label ID="CustomerSubscriptionTypeLabel" runat="server"
Text='<%# Eval("CustomerSubscriptionType") %>' />
</td>
<td>
<asp:Label ID="CustomerPaymentMethodLabel" runat="server"
Text='<%# Eval("CustomerPaymentMethod") %>' />
</td>
<td>
<asp:Label ID="CustomerPickUpDayLabel" runat="server"
Text='<%# Eval("CustomerPickUpDay") %>' />
</td>
<td>
<asp:Label ID="CustomerPickUpDay2Label" runat="server"
Text='<%# Eval("CustomerPickUpDay2") %>' />
</td>
</tr>
</ItemTemplate>
<LayoutTemplate>
<table runat="server">
<tr runat="server">
<td runat="server">
<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;">
<tr runat="server" style="background-color: #FFFBD6;color: #333333;">
<th runat="server">
</th>
<th runat="server">
Id</th>
<th runat="server">
Status</th>
<th runat="server">
First Name</th>
<th runat="server">
Last Name</th>
<th runat="server">
Company Name</th>
<th runat="server">
E-mail</th>
<th runat="server">
Type</th>
<th runat="server">
Phone Number</th>
<th runat="server">
Subscription Type</th>
<th runat="server">
Payment Method</th>
<th runat="server">
Pick-Up Day</th>
<th runat="server">
Second Pick-Up Day</th>
</tr>
<tr ID="itemPlaceholder" runat="server">
</tr>
</table>
</td>
</tr>
<tr runat="server">
<td runat="server"
style="text-align: center;background-color: #FFCC66;font-family: Verdana, Arial, Helvetica, sans-serif;color: #333333;">
<asp:DataPager ID="DataPager1" runat="server">
<Fields>
<asp:NextPreviousPagerField ButtonType="Button" ShowFirstPageButton="True"
ShowNextPageButton="False" ShowPreviousPageButton="False" />
<asp:NumericPagerField />
<asp:NextPreviousPagerField ButtonType="Button" ShowLastPageButton="True"
ShowNextPageButton="False" ShowPreviousPageButton="False" />
</Fields>
</asp:DataPager>
</td>
</tr>
</table>
</LayoutTemplate>
<SelectedItemTemplate>
<tr style="background-color: #FFCC66;font-weight: bold;color: #000080;">
<td>
<asp:Button ID="DeleteButton" runat="server" CommandName="Delete"
Text="Delete" />
<asp:Button ID="EditButton" runat="server" CommandName="Edit" Text="Edit" />
</td>
<td>
<asp:Label ID="CustomerIdLabel" runat="server"
Text='<%# Eval("CustomerId") %>' />
</td>
<td>
<asp:Label ID="CustomerStatusLabel" runat="server"
Text='<%# Eval("CustomerStatus") %>' />
</td>
<td>
<asp:Label ID="CustomerFirstNameLabel" runat="server"
Text='<%# Eval("CustomerFirstName") %>' />
</td>
<td>
<asp:Label ID="CustomerLastNameLabel" runat="server"
Text='<%# Eval("CustomerLastName") %>' />
</td>
<td>
<asp:Label ID="CompanyNameLabel" runat="server"
Text='<%# Eval("CompanyName") %>' />
</td>
<td>
<asp:Label ID="CustomerEmailLabel" runat="server"
Text='<%# Eval("CustomerEmail") %>' />
</td>
<td>
<asp:Label ID="CustomerTypeLabel" runat="server"
Text='<%# Eval("CustomerType") %>' />
</td>
<td>
<asp:Label ID="CustomerPhoneNumberLabel" runat="server"
Text='<%# Eval("CustomerPhoneNumber") %>' />
</td>
<td>
<asp:Label ID="CustomerSubscriptionTypeLabel" runat="server"
Text='<%# Eval("CustomerSubscriptionType") %>' />
</td>
<td>
<asp:Label ID="CustomerPaymentMethodLabel" runat="server"
Text='<%# Eval("CustomerPaymentMethod") %>' />
</td>
<td>
<asp:Label ID="CustomerPickUpDayLabel" runat="server"
Text='<%# Eval("CustomerPickUpDay") %>' />
</td>
<td>
<asp:Label ID="CustomerPickUpDay2Label" runat="server"
Text='<%# Eval("CustomerPickUpDay2") %>' />
</td>
</tr>
</SelectedItemTemplate>
</asp:ListView>
<asp:SqlDataSource ID="SqlDataSource1" runat="server"
ConflictDetection="CompareAllValues"
ConnectionString="<%$ ConnectionStrings:tcc_customersConnectionString %>"
DeleteCommand="DELETE FROM [Customers] WHERE [CustomerId] = @original_CustomerId AND [CustomerStatus] = @original_CustomerStatus AND [CustomerFirstName] = @original_CustomerFirstName AND [CustomerLastName] = @original_CustomerLastName AND [CompanyName] = @original_CompanyName AND [CustomerEmail] = @original_CustomerEmail AND [CustomerType] = @original_CustomerType AND [CustomerPhoneNumber] = @original_CustomerPhoneNumber AND [CustomerSubscriptionType] = @original_CustomerSubscriptionType AND [CustomerPaymentMethod] = @original_CustomerPaymentMethod AND [CustomerPickUpDay] = @original_CustomerPickUpDay AND [CustomerPickUpDay2] = @original_CustomerPickUpDay2"
InsertCommand="INSERT INTO [Customers] ([CustomerStatus], [CustomerFirstName], [CustomerLastName], [CompanyName], [CustomerEmail], [CustomerType], [CustomerPhoneNumber], [CustomerSubscriptionType], [CustomerPaymentMethod], [CustomerPickUpDay], [CustomerPickUpDay2]) VALUES (@CustomerStatus, @CustomerFirstName, @CustomerLastName, @CompanyName, @CustomerEmail, @CustomerType, @CustomerPhoneNumber, @CustomerSubscriptionType, @CustomerPaymentMethod, @CustomerPickUpDay, @CustomerPickUpDay2)"
OldValuesParameterFormatString="original_{0}"
SelectCommand="SELECT [CustomerId], [CustomerStatus], [CustomerFirstName], [CustomerLastName], [CompanyName], [CustomerEmail], [CustomerType], [CustomerPhoneNumber], [CustomerSubscriptionType], [CustomerPaymentMethod], [CustomerPickUpDay], [CustomerPickUpDay2] FROM [Customers] ORDER BY [CustomerLastName], [CustomerFirstName], [CustomerId]"
UpdateCommand="UPDATE [Customers] SET [CustomerStatus] = @CustomerStatus, [CustomerFirstName] = @CustomerFirstName, [CustomerLastName] = @CustomerLastName, [CompanyName] = @CompanyName, [CustomerEmail] = @CustomerEmail, [CustomerType] = @CustomerType, [CustomerPhoneNumber] = @CustomerPhoneNumber, [CustomerSubscriptionType] = @CustomerSubscriptionType, [CustomerPaymentMethod] = @CustomerPaymentMethod, [CustomerPickUpDay] = @CustomerPickUpDay, [CustomerPickUpDay2] = @CustomerPickUpDay2 WHERE [CustomerId] = @original_CustomerId AND [CustomerStatus] = @original_CustomerStatus AND [CustomerFirstName] = @original_CustomerFirstName AND [CustomerLastName] = @original_CustomerLastName AND [CompanyName] = @original_CompanyName AND [CustomerEmail] = @original_CustomerEmail AND [CustomerType] = @original_CustomerType AND [CustomerPhoneNumber] = @original_CustomerPhoneNumber AND [CustomerSubscriptionType] = @original_CustomerSubscriptionType AND [CustomerPaymentMethod] = @original_CustomerPaymentMethod AND [CustomerPickUpDay] = @original_CustomerPickUpDay AND [CustomerPickUpDay2] = @original_CustomerPickUpDay2">
<DeleteParameters>
<asp:Parameter Name="original_CustomerId" Type="Int32" />
<asp:Parameter Name="original_CustomerStatus" Type="String" />
<asp:Parameter Name="original_CustomerFirstName" Type="String" />
<asp:Parameter Name="original_CustomerLastName" Type="String" />
<asp:Parameter Name="original_CompanyName" Type="String" />
<asp:Parameter Name="original_CustomerEmail" Type="String" />
<asp:Parameter Name="original_CustomerType" Type="String" />
<asp:Parameter Name="original_CustomerPhoneNumber" Type="String" />
<asp:Parameter Name="original_CustomerSubscriptionType" Type="String" />
<asp:Parameter Name="original_CustomerPaymentMethod" Type="String" />
<asp:Parameter Name="original_CustomerPickUpDay" Type="String" />
<asp:Parameter Name="original_CustomerPickUpDay2" Type="String" />
</DeleteParameters>
<InsertParameters>
<asp:Parameter Name="CustomerStatus" Type="String" />
<asp:Parameter Name="CustomerFirstName" Type="String" />
<asp:Parameter Name="CustomerLastName" Type="String" />
<asp:Parameter Name="CompanyName" Type="String" />
<asp:Parameter Name="CustomerEmail" Type="String" />
<asp:Parameter Name="CustomerType" Type="String" />
<asp:Parameter Name="CustomerPhoneNumber" Type="String" />
<asp:Parameter Name="CustomerSubscriptionType" Type="String" />
<asp:Parameter Name="CustomerPaymentMethod" Type="String" />
<asp:Parameter Name="CustomerPickUpDay" Type="String" />
<asp:Parameter Name="CustomerPickUpDay2" Type="String" />
</InsertParameters>
<UpdateParameters>
<asp:Parameter Name="CustomerStatus" Type="String" />
<asp:Parameter Name="CustomerFirstName" Type="String" />
<asp:Parameter Name="CustomerLastName" Type="String" />
<asp:Parameter Name="CompanyName" Type="String" />
<asp:Parameter Name="CustomerEmail" Type="String" />
<asp:Parameter Name="CustomerType" Type="String" />
<asp:Parameter Name="CustomerPhoneNumber" Type="String" />
<asp:Parameter Name="CustomerSubscriptionType" Type="String" />
<asp:Parameter Name="CustomerPaymentMethod" Type="String" />
<asp:Parameter Name="CustomerPickUpDay" Type="String" />
<asp:Parameter Name="CustomerPickUpDay2" Type="String" />
<asp:Parameter Name="original_CustomerId" Type="Int32" />
<asp:Parameter Name="original_CustomerStatus" Type="String" />
<asp:Parameter Name="original_CustomerFirstName" Type="String" />
<asp:Parameter Name="original_CustomerLastName" Type="String" />
<asp:Parameter Name="original_CompanyName" Type="String" />
<asp:Parameter Name="original_CustomerEmail" Type="String" />
<asp:Parameter Name="original_CustomerType" Type="String" />
<asp:Parameter Name="original_CustomerPhoneNumber" Type="String" />
<asp:Parameter Name="original_CustomerSubscriptionType" Type="String" />
<asp:Parameter Name="original_CustomerPaymentMethod" Type="String" />
<asp:Parameter Name="original_CustomerPickUpDay" Type="String" />
<asp:Parameter Name="original_CustomerPickUpDay2" Type="String" />
</UpdateParameters>
</asp:SqlDataSource>
这就是我所有的,那就是索引。然后我尝试了@itsme86建议的方法,但都没有用。。。我真正想要的是CustomerID,这样我就可以从表中调用该特定ID,然后插入到另一个存档的customers表中…您应该将CustomerID放在“tr”标记上,这样您就可以在事件处理程序中重新获取它。见下文
<asp:ListView ID="ListView1" runat="server" DataKeyNames="CustomerId"
DataSourceID="SqlDataSource1" OnItemDeleting= "ArchiveBeforeDelete">
<AlternatingItemTemplate>
<tr id="<%# Eval("CustomerId") %>"
style="background-color: #FAFAD2;color: #284775;">
<td>
<asp:Button ID="ArchiveButton" runat="server" CommandName="Delete"
Text="Archive" />
<asp:Button ID="EditButton" runat="server" CommandName="Edit" Text="Edit" />
</td>
<td>
<asp:Label ID="CustomerIdLabel" runat="server"
Text='<%# Eval("CustomerId") %>' />
</td>
<td>
<asp:Label ID="CustomerStatusLabel" runat="server"
Text='<%# Eval("CustomerStatus") %>' />
</td>
etc.
等
因此,正如我在前面的评论中所建议的,可以在.aspx页面中编辑delete命令,如下所示:
INSERT INTO ArchivedCustomers SELECT CustomerStatus, CustomerGroup, CustomerFirstName, CustomerLastName, CompanyName, CustomerAddress, CustomerCity, CustomerState, CustomerZipcode, CustomerEmail, CustomerEmail2, CustomerPhoneNumber, CustomerPhoneNumberExt, CustomerType, CustomerSubscriptionType, CustomerCost, CustomerPaymentMethod, CustomerSignUpDate, CustomerPickUpDay, CustomerPickUpDay2, CustomerNotes FROM Customers WHERE CustomerID = @original_CustomerID; DELETE FROM Customers WHERE CustomerId = @original_CustomerId"
如您所见,首先它被插入到ArchivedCustomers表中,然后在我处理完它之后被删除。但是需要注意的一点是,我必须将属性ConflictDetection从CompareAllValues更改为OverwriteChanges,以防止出现错误。如果有人想解释,请解释,但现在我关心的是它是否有效!:)
非常感谢@Jake1164,如果你没有让我发布那段代码,我想我不会像我那样快看到编辑该命令的能力。它应该是子项之一:ListViewItem.subitems[index]。Text你能提供一个更完整的代码示例吗?@itsme86我试过了,但是。Text不起作用,我在看另一个stackoverflow问题,它是这样的,但它是一个winform,这是一个web应用程序,我可能应该指定,让我看看我能为您提供什么代码helpful@Jake1164:已编辑,希望帮助SSO当我从.aspx页面查看代码时,我看到DeleteCommand已定义,所以,我可以在这里编辑它,并做两个任务,第一个复制到另一个表,然后它可以做删除?这可能会起作用,不确定,找到了我自己的解决方案,我在评论中暗示,将在第二时间发布。无论如何谢谢你!
INSERT INTO ArchivedCustomers SELECT CustomerStatus, CustomerGroup, CustomerFirstName, CustomerLastName, CompanyName, CustomerAddress, CustomerCity, CustomerState, CustomerZipcode, CustomerEmail, CustomerEmail2, CustomerPhoneNumber, CustomerPhoneNumberExt, CustomerType, CustomerSubscriptionType, CustomerCost, CustomerPaymentMethod, CustomerSignUpDate, CustomerPickUpDay, CustomerPickUpDay2, CustomerNotes FROM Customers WHERE CustomerID = @original_CustomerID; DELETE FROM Customers WHERE CustomerId = @original_CustomerId"