ASP.Net/Data Binding/BoundField — различия между версиями

Материал из .Net Framework эксперт
Перейти к: навигация, поиск
м (1 версия)
 
м (1 версия)
 
(нет различий)

Текущая версия на 14:52, 26 мая 2010

Adding multicolumn sorting to the GridView (C#)

   <source lang="csharp">

<%@ Page Language="C#" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <script runat="server">

   protected void GridView1_Sorting(object sender, GridViewSortEventArgs e)
   {
       string oldExpression = GridView1.SortExpression;
       string newExpression = e.SortExpression;
       if (oldExpression.IndexOf(newExpression) < 0)
       {
           if (oldExpression.Length > 0)
               e.SortExpression = newExpression + "," + oldExpression;
           else
               e.SortExpression = newExpression;
       }
       else
       {
           e.SortExpression = oldExpression;
       }
   }

</script> <html xmlns="http://www.w3.org/1999/xhtml" > <head runat="server">

   <title>Untitled Page</title>

</head> <body>

   <form id="form1" runat="server">
       <asp:GridView ID="GridView1" Runat="server" DataSourceID="SqlDataSource1"
            DataKeyNames="CustomerID" AutoGenerateColumns="False"
            AllowSorting="True" OnSorting="GridView1_Sorting">
           <Columns>
               <asp:BoundField ReadOnly="True" HeaderText="CustomerID"
                    DataField="CustomerID"
                    SortExpression="CustomerID"></asp:BoundField>
               <asp:BoundField HeaderText="CompanyName" DataField="CompanyName"
                    SortExpression="CompanyName"></asp:BoundField>
               <asp:BoundField HeaderText="ContactName" DataField="ContactName"
                    SortExpression="ContactName"></asp:BoundField>
               <asp:BoundField HeaderText="ContactTitle" DataField="ContactTitle"
                    SortExpression="ContactTitle"></asp:BoundField>
               <asp:BoundField HeaderText="Address" DataField="Address"
                    SortExpression="Address"></asp:BoundField>
               <asp:BoundField HeaderText="City" DataField="City"
                    SortExpression="City"></asp:BoundField>
               <asp:BoundField HeaderText="Region" DataField="Region"
                    SortExpression="Region"></asp:BoundField>
               <asp:BoundField HeaderText="PostalCode" DataField="PostalCode"
                    SortExpression="PostalCode"></asp:BoundField>
               <asp:BoundField HeaderText="Country" DataField="Country" 
                    SortExpression="Country"></asp:BoundField>
               <asp:BoundField HeaderText="Phone" DataField="Phone" 
                    SortExpression="Phone"></asp:BoundField>
               <asp:BoundField HeaderText="Fax" DataField="Fax" 
                    SortExpression="Fax"></asp:BoundField>
           </Columns>
       </asp:GridView>
       <asp:SqlDataSource ID="SqlDataSource1" Runat="server"
           SelectCommand="SELECT * FROM [Customers]" 
           ConnectionString="<%$ ConnectionStrings:AppConnectionString1 %>"
           DataSourceMode="DataSet"
           ConflictDetection="CompareAllValues" EnableCaching="True"
           CacheKeyDependency="MyKey" CacheDuration="Infinite">
       </asp:SqlDataSource>
   </form>

</body> </html> File: Web.config <configuration>

 <appSettings/>
 <connectionStrings>
       <add name="AppConnectionString1" 
            connectionString="Data Source=localhost\SQLEXPRESS;Initial Catalog=Northwind;Integrated Security=True"
            providerName="System.Data.SqlClient" />
   </connectionStrings>
 <system.web>
   <compilation debug="true" strict="false" explicit="true">
     <codeSubDirectories>
       <add directoryName="VB"></add>
       <add directoryName="CS"></add>
     </codeSubDirectories>
   </compilation>
   <pages>
     <namespaces>
       <clear/>
       <add namespace="System"/>
       <add namespace="System.Collections"/>
       <add namespace="System.Collections.Specialized"/>
       <add namespace="System.Configuration"/>
       <add namespace="System.Text"/>
       <add namespace="System.Text.RegularExpressions"/>
       <add namespace="System.Web"/>
       <add namespace="System.Web.Caching"/>
       <add namespace="System.Web.SessionState"/>
       <add namespace="System.Web.Security"/>
       <add namespace="System.Web.Profile"/>
       <add namespace="System.Web.UI"/>
       <add namespace="System.Web.UI.WebControls"/>
       <add namespace="System.Web.UI.WebControls.WebParts"/>
       <add namespace="System.Web.UI.HtmlControls"/>
     </namespaces>
   </pages>
   <authentication mode="Windows"></authentication>
   <identity impersonate="true"/>
 </system.web>

</configuration>

</source>
   
  


Adding multicolumn sorting to the GridView (VB)

   <source lang="csharp">

<%@ Page Language="VB" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <script runat="server">

   Protected Sub GridView1_Sorting(ByVal sender As Object, ByVal e As GridViewSortEventArgs)
   
       Dim oldExpression As String = GridView1.SortExpression
       Dim newExpression As String = e.SortExpression
       If (oldExpression.IndexOf(newExpression) < 0) Then
           If (oldExpression.Length > 0) Then
               e.SortExpression = newExpression & "," & oldExpression
           Else
               e.SortExpression = newExpression
           End If
       Else
           e.SortExpression = oldExpression
       End If
   End Sub

</script>

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

   <title>Untitled Page</title>

</head> <body>

   <form id="form1" runat="server">
       <asp:GridView ID="GridView1" Runat="server" DataSourceID="SqlDataSource1"
            DataKeyNames="CustomerID" AutoGenerateColumns="False"
            AllowSorting="True" OnSorting="GridView1_Sorting">
           <Columns>
               <asp:BoundField ReadOnly="True" HeaderText="CustomerID"
                    DataField="CustomerID"
                    SortExpression="CustomerID"></asp:BoundField>
               <asp:BoundField HeaderText="CompanyName" DataField="CompanyName"
                    SortExpression="CompanyName"></asp:BoundField>
               <asp:BoundField HeaderText="ContactName" DataField="ContactName"
                    SortExpression="ContactName"></asp:BoundField>
               <asp:BoundField HeaderText="ContactTitle" DataField="ContactTitle"
                    SortExpression="ContactTitle"></asp:BoundField>
               <asp:BoundField HeaderText="Address" DataField="Address"
                    SortExpression="Address"></asp:BoundField>
               <asp:BoundField HeaderText="City" DataField="City"
                    SortExpression="City"></asp:BoundField>
               <asp:BoundField HeaderText="Region" DataField="Region"
                    SortExpression="Region"></asp:BoundField>
               <asp:BoundField HeaderText="PostalCode" DataField="PostalCode"
                    SortExpression="PostalCode"></asp:BoundField>
               <asp:BoundField HeaderText="Country" DataField="Country" 
                    SortExpression="Country"></asp:BoundField>
               <asp:BoundField HeaderText="Phone" DataField="Phone" 
                    SortExpression="Phone"></asp:BoundField>
               <asp:BoundField HeaderText="Fax" DataField="Fax" 
                    SortExpression="Fax"></asp:BoundField>
           </Columns>
       </asp:GridView>
       <asp:SqlDataSource ID="SqlDataSource1" Runat="server"
           SelectCommand="SELECT * FROM [Customers]" 
           ConnectionString="<%$ ConnectionStrings:AppConnectionString1 %>"
           DataSourceMode="DataSet"
           ConflictDetection="CompareAllValues" EnableCaching="True"
           CacheKeyDependency="MyKey" CacheDuration="Infinite">
       </asp:SqlDataSource>
   </form>

</body> </html> File: Web.config <configuration>

 <appSettings/>
 <connectionStrings>
       <add name="AppConnectionString1" 
            connectionString="Data Source=localhost\SQLEXPRESS;Initial Catalog=Northwind;Integrated Security=True"
            providerName="System.Data.SqlClient" />
   </connectionStrings>
 <system.web>
   <compilation debug="true" strict="false" explicit="true">
     <codeSubDirectories>
       <add directoryName="VB"></add>
       <add directoryName="CS"></add>
     </codeSubDirectories>
   </compilation>
   <pages>
     <namespaces>
       <clear/>
       <add namespace="System"/>
       <add namespace="System.Collections"/>
       <add namespace="System.Collections.Specialized"/>
       <add namespace="System.Configuration"/>
       <add namespace="System.Text"/>
       <add namespace="System.Text.RegularExpressions"/>
       <add namespace="System.Web"/>
       <add namespace="System.Web.Caching"/>
       <add namespace="System.Web.SessionState"/>
       <add namespace="System.Web.Security"/>
       <add namespace="System.Web.Profile"/>
       <add namespace="System.Web.UI"/>
       <add namespace="System.Web.UI.WebControls"/>
       <add namespace="System.Web.UI.WebControls.WebParts"/>
       <add namespace="System.Web.UI.HtmlControls"/>
     </namespaces>
   </pages>
   <authentication mode="Windows"></authentication>
   <identity impersonate="true"/>
 </system.web>

</configuration>

</source>
   
  


BoundField as GridView columns

   <source lang="csharp">

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<script runat="server"> </script> <html xmlns="http://www.w3.org/1999/xhtml" > <head runat="server">

   <title>Untitled Page</title>

</head> <body>

   <form id="form1" runat="server">
       <asp:GridView ID="GridView1" 
                     Runat="server" 
                     DataSourceID="SqlDataSource1"
                     DataKeyNames="CustomerID" 
                     AutoGenerateColumns="False">
           <Columns>
               <asp:BoundField ReadOnly="True" 
                               HeaderText="CustomerID"
                               DataField="CustomerID"
                               SortExpression="CustomerID"/>
               <asp:BoundField HeaderText="CompanyName" 
                               DataField="CompanyName"
                               SortExpression="CompanyName"/>
               <asp:BoundField HeaderText="ContactName" 
                               DataField="ContactName"
                               SortExpression="ContactName"/>
               <asp:BoundField HeaderText="ContactTitle" 
                               DataField="ContactTitle"
                               SortExpression="ContactTitle"/>
               <asp:BoundField HeaderText="Address" 
                               DataField="Address"
                               SortExpression="Address"/>
               <asp:BoundField HeaderText="City" 
                               DataField="City"
                               SortExpression="City"/>
               <asp:BoundField HeaderText="Region" 
                               DataField="Region"
                               SortExpression="Region"/>
               <asp:BoundField HeaderText="PostalCode" 
                               DataField="PostalCode"
                               SortExpression="PostalCode"/>
               <asp:BoundField HeaderText="Country" 
                               DataField="Country" 
                               SortExpression="Country"/>
               <asp:BoundField HeaderText="Phone" 
                               DataField="Phone" 
                               SortExpression="Phone"/>
               <asp:BoundField HeaderText="Fax" 
                               DataField="Fax" 
                               SortExpression="Fax"/>
           </Columns>
       </asp:GridView>
       <asp:SqlDataSource ID="SqlDataSource1" 
                          Runat="server"
                          SelectCommand="SELECT * FROM [Customers]" 
                          ConnectionString="<%$ ConnectionStrings:AppConnectionString1 %>"
                          DataSourceMode="DataSet"
                          ConflictDetection="CompareAllValues" EnableCaching="True"
                          CacheKeyDependency="MyKey" 
                          CacheDuration="Infinite">
       </asp:SqlDataSource>
   </form>

</body> </html>

File: Web.config <configuration>

 <appSettings/>
 <connectionStrings>
       <add name="AppConnectionString1" 
            connectionString="Data Source=localhost\SQLEXPRESS;Initial Catalog=Northwind;Integrated Security=True"
            providerName="System.Data.SqlClient" />
   </connectionStrings>
 <system.web>
   <compilation debug="true" strict="false" explicit="true">
     <codeSubDirectories>
       <add directoryName="VB"></add>
       <add directoryName="CS"></add>
     </codeSubDirectories>
   </compilation>
   <pages>
     <namespaces>
       <clear/>
       <add namespace="System"/>
       <add namespace="System.Collections"/>
       <add namespace="System.Collections.Specialized"/>
       <add namespace="System.Configuration"/>
       <add namespace="System.Text"/>
       <add namespace="System.Text.RegularExpressions"/>
       <add namespace="System.Web"/>
       <add namespace="System.Web.Caching"/>
       <add namespace="System.Web.SessionState"/>
       <add namespace="System.Web.Security"/>
       <add namespace="System.Web.Profile"/>
       <add namespace="System.Web.UI"/>
       <add namespace="System.Web.UI.WebControls"/>
       <add namespace="System.Web.UI.WebControls.WebParts"/>
       <add namespace="System.Web.UI.HtmlControls"/>
     </namespaces>
   </pages>
   <authentication mode="Windows"></authentication>
   <identity impersonate="true"/>
 </system.web>

</configuration>

</source>
   
  


BoundField with ItemStyle

   <source lang="csharp">

<%@ Page Language="C#" %> <html xmlns="http://www.w3.org/1999/xhtml" > <head runat="server">

   <title>Formatting GridView using Styles</title>

</head> <body>

   <form id="form1" runat="server">
       <asp:SqlDataSource ID="productsSource" runat="server"
           ProviderName="System.Data.SqlClient" 
           ConnectionString="<%$ ConnectionStrings:AdventureWorks %>"
           SelectCommand="Select ProductID, Name, ProductNumber, DaysToManufacture, SellStartDate from Production.Product">            
       </asp:SqlDataSource>
       <asp:GridView runat="server" 
                     ID="gridProducts" 
                     DataSourceID="productsSource"
                     Font-Names="Verdana" 
                     Font-Size="X-Small" 
                     ForeColor="#333333"
                     CellPadding="4" 
                     GridLines="None" 
                     AutoGenerateColumns="False">
            <HeaderStyle BackColor="#990000" Font-Bold="True" ForeColor="White" />
            <RowStyle BackColor="#FFFBD6" ForeColor="#333333" />
            <AlternatingRowStyle BackColor="White" />       
           <Columns>
               <asp:BoundField DataField="ProductID" HeaderText="ID">
                   <ItemStyle Font-Bold="True" BorderWidth="1" />
               </asp:BoundField>
               <asp:BoundField DataField="Name" HeaderText="Name">
                   <ItemStyle Wrap="True" Width="200"/>
               </asp:BoundField>
               <asp:BoundField DataField="ProductNumber" HeaderText="Number">
                   <ItemStyle BackColor="LightSteelBlue" />
               </asp:BoundField>
               <asp:BoundField DataField="DaysToManufacture" HeaderText="Days To Manufacture" />                
               <asp:BoundField DataField="SellStartDate" HeaderText="Sell Start Date"
                   DataFormatString="{0:MM/dd/yyyy}" />
           </Columns>
       </asp:GridView>
   </form>

</body> </html> File: Web.config <configuration>

 <appSettings/>
 <connectionStrings>
       <add name="AdventureWorks" 
            connectionString="Data Source=localhost\SQLEXPRESS;Initial Catalog=AdventureWorks;Integrated Security=True"
            providerName="System.Data.SqlClient" />
   </connectionStrings>
 <system.web>
   <compilation debug="true" strict="false" explicit="true">
     <codeSubDirectories>
       <add directoryName="VB"></add>
       <add directoryName="CS"></add>
     </codeSubDirectories>
   </compilation>
   <pages>
     <namespaces>
       <clear/>
       <add namespace="System"/>
       <add namespace="System.Collections"/>
       <add namespace="System.Collections.Specialized"/>
       <add namespace="System.Configuration"/>
       <add namespace="System.Text"/>
       <add namespace="System.Text.RegularExpressions"/>
       <add namespace="System.Web"/>
       <add namespace="System.Web.Caching"/>
       <add namespace="System.Web.SessionState"/>
       <add namespace="System.Web.Security"/>
       <add namespace="System.Web.Profile"/>
       <add namespace="System.Web.UI"/>
       <add namespace="System.Web.UI.WebControls"/>
       <add namespace="System.Web.UI.WebControls.WebParts"/>
       <add namespace="System.Web.UI.HtmlControls"/>
     </namespaces>
   </pages>
   <authentication mode="Windows"></authentication>
   <identity impersonate="true"/>
 </system.web>

</configuration>

</source>
   
  


Using the BoundField for explicitly specifying Columns

   <source lang="csharp">

<%@ Page Language="C#" %> <html xmlns="http://www.w3.org/1999/xhtml" > <head runat="server">

   <title>Using the BoundField for explicitly specifying Columns</title>

</head> <body>

   <form id="form1" runat="server">
       <asp:SqlDataSource ID="productsSource" runat="server"
           ProviderName="System.Data.SqlClient" 
           ConnectionString="<%$ ConnectionStrings:AdventureWorks %>"
           SelectCommand="Select ProductID, Name, ProductNumber, DaysToManufacture from Production.Product">            
       </asp:SqlDataSource>
       <asp:GridView runat="server" ID="gridProducts" DataSourceID="productsSource"
           AutoGenerateColumns="false">        
           <Columns>
               <asp:BoundField DataField="ProductID" HeaderText="ID" />
               <asp:BoundField DataField="Name" HeaderText="Name" />
               <asp:BoundField DataField="ProductNumber" HeaderText="Number" />
               <asp:BoundField DataField="DaysToManufacture" HeaderText="Days To Manufacture" />                
           </Columns>
       </asp:GridView>
   </form>

</body> </html>

</source>