📄 editabledetailsview.aspx
字号:
<%@ Page Language="VB" AutoEventWireup="false" CodeFile="EditableDetailsView.aspx.vb" Inherits="EditableDetailsView" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<script runat="server">
Sub ItemUpdated(ByVal sender As Object, ByVal e As DetailsViewUpdatedEventArgs)
If e.Exception Is Nothing Then
txtError.Visible = False
Else
txtError.Visible = True
txtError.Text = "Error: " + Mid(e.Exception.Message, 1, e.Exception.Message.IndexOf("."))
e.ExceptionHandled = True
End If
End Sub
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head id="Head1" runat="server">
<title>ASP.NET 2.0 GridView and DetailsView Controls</title>
</head>
<body style="font-size: 12pt" bgcolor="#ffffff">
<form id="frmDetails" runat="server">
<div style="background-color: Gainsboro">
<div style="text-align: left">
<span style="font-size: 14pt; font-family: Arial; height: 25px ; width: 406px;"><b> Editable DetailsView and Linked GridView</b></span>
<asp:LinkButton ID="lbReadOnly" Font-Names="Arial" Font-Size="11pt" Runat="server"
PostBackUrl="~/Default.aspx" ToolTip="Click to display default read-only GridView page"
EnableViewState="False" Font-Bold="True">Read-Only GridView</asp:LinkButton>
<asp:LinkButton ID="lbEditable" Font-Names="Arial" Font-Size="11pt" Runat="server"
PostBackUrl="~/EditableGridView.aspx" ToolTip="Click to display editable GridView page"
Font-Bold="True">Editable GridView</asp:LinkButton> <asp:TextBox
ID="txtError" Runat="server" Height="18px" Width="718px" ForeColor="Red" Visible="False"></asp:TextBox>
<table style="width: 718px; height: 25px">
<tr>
<td valign="top" style="width: 275px; height: 21px">
<asp:DetailsView ID="dvOrders" Runat="server" Font-Size="10pt" DataKeyNames="OrderID"
DataSourceID="dsNWOrdersDetails" AutoGenerateRows="False" Font-Names="Verdana" AllowPaging="True" Width="287px" Height="313px" EmptyDataText="Missing" OnItemUpdated="ItemUpdated">
<PagerSettings NextPageText="Next" FirstPageText="First" LastPageText="Last" PreviousPageText="Previous"
Mode="NextPreviousFirstLast"></PagerSettings>
<Fields>
<asp:BoundField ReadOnly="True" HeaderText="Order ID" InsertVisible="False" DataField="OrderID"
SortExpression="OrderID"></asp:BoundField>
<asp:BoundField HeaderText="Customer ID" DataField="CustomerID" SortExpression="CustomerID"></asp:BoundField>
<asp:BoundField HeaderText="Employee ID" DataField="EmployeeID" SortExpression="EmployeeID"></asp:BoundField>
<asp:BoundField HeaderText="Order Date" DataField="OrderDate" SortExpression="OrderDate" DataFormatString="{0:d}" ApplyFormatInEditMode="True"></asp:BoundField>
<asp:BoundField HeaderText="Required Date" DataField="RequiredDate" SortExpression="RequiredDate" DataFormatString="{0:d}" ApplyFormatInEditMode="True"></asp:BoundField>
<asp:BoundField HeaderText="Shipped Date" DataField="ShippedDate" SortExpression="ShippedDate" NullDisplayText="Pending" DataFormatString="{0:d}" ApplyFormatInEditMode="True"></asp:BoundField>
<asp:BoundField HeaderText="Ship Via" DataField="ShipVia" SortExpression="ShipVia"></asp:BoundField>
<asp:BoundField HeaderText="Freight" DataField="Freight" SortExpression="Freight" DataFormatString="{0:c}"></asp:BoundField>
<asp:BoundField HeaderText="Ship Name" DataField="ShipName" SortExpression="ShipName"></asp:BoundField>
<asp:BoundField HeaderText="Ship Address" DataField="ShipAddress" SortExpression="ShipAddress"></asp:BoundField>
<asp:BoundField HeaderText="Ship City" DataField="ShipCity" SortExpression="ShipCity"></asp:BoundField>
<asp:BoundField HeaderText="Ship Region" DataField="ShipRegion" SortExpression="ShipRegion"></asp:BoundField>
<asp:BoundField HeaderText="Ship PostalCode" DataField="ShipPostalCode" SortExpression="ShipPostalCode"></asp:BoundField>
<asp:BoundField HeaderText="Ship Country" DataField="ShipCountry" SortExpression="ShipCountry"></asp:BoundField>
<asp:CommandField ShowInsertButton="True" ShowEditButton="True"></asp:CommandField>
</Fields>
</asp:DetailsView>
</td>
<td valign="top" style="width: 320px; height: 21px">
<asp:GridView ID="gvOrderDetails" Runat="server" DataSourceID="dsNWOrderDetailsFiltered"
DataKeyNames="OrderID,ProductID" AutoGenerateColumns="False" Font-Names="Verdana" Font-Size="10pt" CaptionAlign="Left" >
<Columns>
<asp:CommandField ShowEditButton="True"></asp:CommandField>
<asp:BoundField ReadOnly="True" HeaderText="Order ID" DataField="OrderID" SortExpression="OrderID"></asp:BoundField>
<asp:BoundField HeaderText="Product ID" DataField="ProductID" SortExpression="ProductID"></asp:BoundField>
<asp:BoundField HeaderText="Unit Price" DataField="UnitPrice" SortExpression="UnitPrice" DataFormatString="{0:c}"></asp:BoundField>
<asp:BoundField HeaderText="Quan." DataField="Quantity" SortExpression="Quantity"></asp:BoundField>
<asp:BoundField HeaderText="Disc." DataField="Discount" SortExpression="Discount" DataFormatString="{0:p1}">
<ItemStyle Wrap="False"></ItemStyle>
</asp:BoundField>
</Columns>
</asp:GridView><br />
<asp:DetailsView ID="dvOrderDetails" Runat="server" Font-Size="10pt" Font-Names="Verdana"
Width="255px" Height="142px" AllowPaging="True" AutoGenerateRows="False" DataSourceID="dsNWOrderDetailsView"
DataKeyNames="OrderID,ProductID">
<Fields>
<asp:BoundField ReadOnly="True" HeaderText="Order ID" DataField="OrderID" NullDisplayText="Generated"
SortExpression="OrderID"></asp:BoundField>
<asp:BoundField HeaderText="Product ID" DataField="ProductID" SortExpression="ProductID"></asp:BoundField>
<asp:BoundField HeaderText="Unit Price" DataField="UnitPrice" SortExpression="UnitPrice"
DataFormatString="{0:c}"></asp:BoundField>
<asp:BoundField HeaderText="Quantity" DataField="Quantity" SortExpression="Quantity"></asp:BoundField>
<asp:BoundField HeaderText="Discount" DataField="Discount" SortExpression="Discount"
DataFormatString="{0:p1}"></asp:BoundField>
<asp:CommandField ShowDeleteButton="True" ShowInsertButton="True" ShowEditButton="True"></asp:CommandField>
</Fields>
</asp:DetailsView>
<!-- See modified UpdateCommand below
Original: UpdateCommand="UPDATE [Order Details] SET [UnitPrice] = @UnitPrice, [Quantity] = @Quantity, [Discount] = @Discount WHERE [OrderID] = @original_OrderID AND [ProductID] = @original_ProductID"> -->
<asp:SqlDataSource ID="dsNWOrderDetailsView" Runat="server" ConnectionString="<%$ ConnectionStrings:NorthwindConnectionString %>"
SelectCommand="SELECT [OrderID], [ProductID], [UnitPrice], [Quantity], [Discount] FROM [Order Details] WHERE ([OrderID] = @OrderID)" DeleteCommand="DELETE FROM [Order Details] WHERE [OrderID] = @original_OrderID AND [ProductID] = @original_ProductID"
InsertCommand="INSERT INTO [Order Details] ([OrderID], [ProductID], [UnitPrice], [Quantity], [Discount]) VALUES (@OrderID, @ProductID, @UnitPrice, @Quantity, @Discount)"
UpdateCommand="UPDATE [Order Details] SET [UnitPrice] = @UnitPrice, [Quantity] = @Quantity, [Discount] = @Discount WHERE [OrderID] = @original_OrderID AND [ProductID] = @original_ProductID">
<DeleteParameters>
<asp:Parameter Type="Int32" Name="OrderID"></asp:Parameter>
<asp:Parameter Type="Int32" Name="ProductID"></asp:Parameter>
</DeleteParameters>
<UpdateParameters>
<asp:Parameter Type="Decimal" Name="UnitPrice"></asp:Parameter>
<asp:Parameter Type="Int16" Name="Quantity"></asp:Parameter>
<asp:Parameter Type="Single" Name="Discount"></asp:Parameter>
<asp:Parameter Type="Int32" Name="OrderID"></asp:Parameter>
<asp:Parameter Type="Int32" Name="ProductID"></asp:Parameter>
</UpdateParameters>
<SelectParameters>
<asp:ControlParameter Name="OrderID" DefaultValue="11077" Type="Int32" ControlID="dvOrders"
PropertyName="SelectedValue"></asp:ControlParameter>
</SelectParameters>
<InsertParameters>
<asp:Parameter Type="Int32" Name="OrderID"></asp:Parameter>
<asp:Parameter Type="Int32" Name="ProductID"></asp:Parameter>
<asp:Parameter Type="Decimal" Name="UnitPrice"></asp:Parameter>
<asp:Parameter Type="Int16" Name="Quantity"></asp:Parameter>
<asp:Parameter Type="Single" Name="Discount"></asp:Parameter>
</InsertParameters>
</asp:SqlDataSource>
</td>
</tr>
</table>
<asp:SqlDataSource ID="dsNWOrdersDetails" Runat="server"
UpdateCommand="UPDATE [Orders] SET [CustomerID] = @CustomerID, [EmployeeID] = @EmployeeID, [OrderDate] = @OrderDate, [RequiredDate] = @RequiredDate, [ShippedDate] = @ShippedDate, [ShipVia] = @ShipVia, [Freight] = @Freight, [ShipName] = @ShipName, [ShipAddress] = @ShipAddress, [ShipCity] = @ShipCity, [ShipRegion] = @ShipRegion, [ShipPostalCode] = @ShipPostalCode, [ShipCountry] = @ShipCountry WHERE [OrderID] = @original_OrderID"
InsertCommand="INSERT INTO [Orders] ([CustomerID], [EmployeeID], [OrderDate], [RequiredDate], [ShippedDate], [ShipVia], [Freight], [ShipName], [ShipAddress], [ShipCity], [ShipRegion], [ShipPostalCode], [ShipCountry]) VALUES (@CustomerID, @EmployeeID, @OrderDate, @RequiredDate, @ShippedDate, @ShipVia, @Freight, @ShipName, @ShipAddress, @ShipCity, @ShipRegion, @ShipPostalCode, @ShipCountry)"
DeleteCommand="DELETE FROM [Orders] WHERE [OrderID] = @original_OrderID"
SelectCommand="SELECT * FROM [Orders] ORDER BY [OrderID] DESC, [CustomerID]" ConnectionString="<%$ ConnectionStrings:NorthwindConnectionString %>">
<DeleteParameters>
<asp:Parameter Type="Int32" Name="OrderID"></asp:Parameter>
</DeleteParameters>
<UpdateParameters>
<asp:Parameter Type="String" Name="CustomerID"></asp:Parameter>
<asp:Parameter Type="Int32" Name="EmployeeID"></asp:Parameter>
<asp:Parameter Type="DateTime" Name="OrderDate"></asp:Parameter>
<asp:Parameter Type="DateTime" Name="RequiredDate"></asp:Parameter>
<asp:Parameter Type="DateTime" Name="ShippedDate"></asp:Parameter>
<asp:Parameter Type="Int32" Name="ShipVia"></asp:Parameter>
<asp:Parameter Type="Decimal" Name="Freight"></asp:Parameter>
<asp:Parameter Type="String" Name="ShipName"></asp:Parameter>
<asp:Parameter Type="String" Name="ShipAddress"></asp:Parameter>
<asp:Parameter Type="String" Name="ShipCity"></asp:Parameter>
<asp:Parameter Type="String" Name="ShipRegion"></asp:Parameter>
<asp:Parameter Type="String" Name="ShipPostalCode"></asp:Parameter>
<asp:Parameter Type="String" Name="ShipCountry"></asp:Parameter>
<asp:Parameter Type="Int32" Name="OrderID"></asp:Parameter>
</UpdateParameters>
<InsertParameters>
<asp:Parameter Type="String" Name="CustomerID"></asp:Parameter>
<asp:Parameter Type="Int32" Name="EmployeeID"></asp:Parameter>
<asp:Parameter Type="DateTime" Name="OrderDate"></asp:Parameter>
<asp:Parameter Type="DateTime" Name="RequiredDate"></asp:Parameter>
<asp:Parameter Type="DateTime" Name="ShippedDate"></asp:Parameter>
<asp:Parameter Type="Int32" Name="ShipVia"></asp:Parameter>
<asp:Parameter Type="Decimal" Name="Freight"></asp:Parameter>
<asp:Parameter Type="String" Name="ShipName"></asp:Parameter>
<asp:Parameter Type="String" Name="ShipAddress"></asp:Parameter>
<asp:Parameter Type="String" Name="ShipCity"></asp:Parameter>
<asp:Parameter Type="String" Name="ShipRegion"></asp:Parameter>
<asp:Parameter Type="String" Name="ShipPostalCode"></asp:Parameter>
<asp:Parameter Type="String" Name="ShipCountry"></asp:Parameter>
</InsertParameters>
</asp:SqlDataSource>
<!-- See modified UpdateCommand below
Original: UpdateCommand="UPDATE [Order Details] SET [UnitPrice] = @UnitPrice, [Quantity] = @Quantity, [Discount] = @Discount WHERE [OrderID] = @original_OrderID AND [ProductID] = @original_ProductID" -->
<asp:SqlDataSource ID="dsNWOrderDetailsFiltered" Runat="server" ConnectionString="<%$ ConnectionStrings:NorthwindConnectionString %>"
SelectCommand="SELECT * FROM [Order Details] WHERE ([OrderID] = @OrderID)"
DeleteCommand="DELETE FROM [Order Details] WHERE [OrderID] = @original_OrderID AND [ProductID] = @original_ProductID"
InsertCommand="INSERT INTO [Order Details] ([OrderID], [ProductID], [UnitPrice], [Quantity], [Discount]) VALUES (@OrderID, @ProductID, @UnitPrice, @Quantity, @Discount)"
UpdateCommand="UPDATE [Order Details] SET [ProductID] = @ProductID, [UnitPrice] = @UnitPrice, [Quantity] = @Quantity, [Discount] = @Discount WHERE [OrderID] = @original_OrderID AND [ProductID] = @original_ProductID">
<DeleteParameters>
<asp:Parameter Type="Int32" Name="OrderID"></asp:Parameter>
<asp:Parameter Type="Int32" Name="ProductID"></asp:Parameter>
</DeleteParameters>
<UpdateParameters>
<asp:Parameter Type="Decimal" Name="UnitPrice"></asp:Parameter>
<asp:Parameter Type="Int16" Name="Quantity"></asp:Parameter>
<asp:Parameter Type="Single" Name="Discount"></asp:Parameter>
<asp:Parameter Type="Int32" Name="OrderID"></asp:Parameter>
<asp:Parameter Type="Int32" Name="ProductID"></asp:Parameter>
</UpdateParameters>
<SelectParameters>
<asp:ControlParameter Name="OrderID" Type="Int32" ControlID="dvOrders" PropertyName="SelectedValue"></asp:ControlParameter>
</SelectParameters>
<InsertParameters>
<asp:Parameter Type="Int32" Name="OrderID"></asp:Parameter>
<asp:Parameter Type="Int32" Name="ProductID"></asp:Parameter>
<asp:Parameter Type="Decimal" Name="UnitPrice"></asp:Parameter>
<asp:Parameter Type="Int16" Name="Quantity"></asp:Parameter>
<asp:Parameter Type="Single" Name="Discount"></asp:Parameter>
</InsertParameters>
</asp:SqlDataSource>
</div>
</div>
</form>
</body>
</html>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -