DetailsView

Элемент управления DetailsView отображает одну запись за один раз и размещает поле в одной строке.
Для того, что бы данный элемент управления, мог включать операции вставки, удаления и редактирования, в таблице базы данных должен быть задан первичный ключ.

Этот элемент управления слишком нагружает трафик, так как извлекается полный набор данных, хотя отображается только одна запись. Нужно включить кэширование, что бы снизить нагрузку на базу данных, что бы данные извлекались из кэша.
 
 

без редактирования

Скрыть

Показать

Копировать
  Default.aspx  
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="abc1.Default" %>
 
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
 <meta charset="utf-8" />
 <title></title>
 <style>
  .a {
   font-size: 26px;
   height: 300px;
   width: 300px;
   position: absolute;
   top: 50%;
   left: 50%;
   margin-top: -150px;
   margin-left: -150px;
  }
 </style>
</head>
<body>
 <form id="form1" runat="server">
  <div class="a">
   <asp:DetailsView ID="DetailsView1" runat="server" Height="330px" Width="300px" BackColor="White" BorderColor="#CC9966" BorderStyle="None" BorderWidth="1px" CellPadding="4" AutoGenerateRows="False" DataKeyNames="IDBooks" DataSourceID="SqlDataSource1" AllowPaging="True">
    <EditRowStyle BackColor="#FFCC66" Font-Bold="True" ForeColor="#663399"></EditRowStyle>
 
    <Fields>
     <asp:BoundField DataField="IDBooks" HeaderText="IDBooks" ReadOnly="True" InsertVisible="False" SortExpression="IDBooks"></asp:BoundField>
     <asp:BoundField DataField="Name" HeaderText="Name" SortExpression="Name"></asp:BoundField>
     <asp:BoundField DataField="Amount" HeaderText="Amount" SortExpression="Amount"></asp:BoundField>
     <asp:BoundField DataField="Price" HeaderText="Price" SortExpression="Price"></asp:BoundField>
    </Fields>
 
    <FooterStyle BackColor="#FFFFCC" ForeColor="#330099"></FooterStyle>
 
    <HeaderStyle BackColor="#990000" Font-Bold="True" ForeColor="#FFFFCC"></HeaderStyle>
 
    <PagerStyle HorizontalAlign="Center" BackColor="#FFFFCC" ForeColor="#330099"></PagerStyle>
 
    <RowStyle BackColor="White" ForeColor="#330099"></RowStyle>
   </asp:DetailsView>
   <asp:SqlDataSource runat="server" ID="SqlDataSource1" ConnectionString='<%$ ConnectionStrings:ConnectionString %>' SelectCommand="SELECT * FROM [Books]"></asp:SqlDataSource>
  </div>
 </form>
</body>
</html>
 
 

с редактированием

Для операции вставки, удаления и редактирования, нажмите кнопку Advanced.
Выберите опцию Generate INSETR, UPDATE and DELETE statements.
Подключите эти опции.
Скрыть

Показать

Копировать
  Default.aspx  
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="abc1.Default" %>
 
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
 <meta charset="utf-8" />
 <title></title>
 <style>
  .a {
   font-size: 26px;
   height: 300px;
   width: 300px;
   position: absolute;
   top: 50%;
   left: 50%;
   margin-top: -150px;
   margin-left: -150px;
  }
 </style>
</head>
<body>
 <form id="form1" runat="server">
  <div class="a">
   <asp:DetailsView ID="DetailsView1" runat="server" Height="300px" Width="300px" BackColor="White" BorderColor="#CC9966" BorderStyle="None" BorderWidth="1px" CellPadding="4" AutoGenerateRows="False" DataKeyNames="IDBooks" DataSourceID="SqlDataSource1" AllowPaging="True">
    <EditRowStyle BackColor="#FFCC66" Font-Bold="True" ForeColor="#663399"></EditRowStyle>
 
    <Fields>
     <asp:BoundField DataField="IDBooks" HeaderText="IDBooks" ReadOnly="True" InsertVisible="False" SortExpression="IDBooks"></asp:BoundField>
     <asp:BoundField DataField="Name" HeaderText="Name" SortExpression="Name"></asp:BoundField>
     <asp:BoundField DataField="Amount" HeaderText="Amount" SortExpression="Amount"></asp:BoundField>
     <asp:BoundField DataField="Price" HeaderText="Price" SortExpression="Price"></asp:BoundField>
     <asp:CommandField ShowInsertButton="True" ShowEditButton="True" ShowDeleteButton="True"></asp:CommandField>
    </Fields>
 
    <FooterStyle BackColor="#FFFFCC" ForeColor="#330099"></FooterStyle>
 
    <HeaderStyle BackColor="#990000" Font-Bold="True" ForeColor="#FFFFCC"></HeaderStyle>
 
    <PagerStyle HorizontalAlign="Center" BackColor="#FFFFCC" ForeColor="#330099"></PagerStyle>
 
    <RowStyle BackColor="White" ForeColor="#330099"></RowStyle>
   </asp:DetailsView>
   <asp:SqlDataSource runat="server" ID="SqlDataSource1" ConnectionString='<%$ ConnectionStrings:ConnectionString %>' DeleteCommand="DELETE FROM [Books] WHERE [IDBooks] = @IDBooks" InsertCommand="INSERT INTO [Books] ([Name], [Amount], [Price]) VALUES (@Name, @Amount, @Price)" SelectCommand="SELECT * FROM [Books]" UpdateCommand="UPDATE [Books] SET [Name] = @Name, [Amount] = @Amount, [Price] = @Price WHERE [IDBooks] = @IDBooks">
    <DeleteParameters>
     <asp:Parameter Name="IDBooks" Type="Int32"></asp:Parameter>
    </DeleteParameters>
    <InsertParameters>
     <asp:Parameter Name="Name" Type="String"></asp:Parameter>
     <asp:Parameter Name="Amount" Type="Int32"></asp:Parameter>
     <asp:Parameter Name="Price" Type="Decimal"></asp:Parameter>
    </InsertParameters>
    <UpdateParameters>
     <asp:Parameter Name="Name" Type="String"></asp:Parameter>
     <asp:Parameter Name="Amount" Type="Int32"></asp:Parameter>
     <asp:Parameter Name="Price" Type="Decimal"></asp:Parameter>
     <asp:Parameter Name="IDBooks" Type="Int32"></asp:Parameter>
    </UpdateParameters>
   </asp:SqlDataSource>
  </div>
 </form>
</body>
</html>