.NET Framework Class Library LinqDataSource Class Enables the use of Language-Integrated Query (LINQ) in an ASP.NET Web page through markup text to retrieve and modify data from a data object.

Inheritance Hierarchy
Namespace:
System.Web.UI.WebControls
Assembly:
System.Web.Extensions (in System.Web.Extensions.dll)

Syntax
<ToolboxBitmapAttribute(GetType(LinqDataSource), "LinqDataSource.bmp")> _
Public Class LinqDataSource _
Inherits ContextDataSource _
Implements IDynamicDataSource, IDataSource
[ToolboxBitmapAttribute(typeof(LinqDataSource), "LinqDataSource.bmp")]
public class LinqDataSource : ContextDataSource,
IDynamicDataSource, IDataSource
[ToolboxBitmapAttribute(typeof(LinqDataSource), L"LinqDataSource.bmp")]
public ref class LinqDataSource : public ContextDataSource,
IDynamicDataSource, IDataSource
[<ToolboxBitmapAttribute(typeof(LinqDataSource), "LinqDataSource.bmp")>]
type LinqDataSource =
class
inherit ContextDataSource
interface IDynamicDataSource
interface IDataSource
end
The LinqDataSource type exposes the following members.

Constructors
|
| Name | Description |
|---|
.gif) | LinqDataSource | Initializes a new instance of the LinqDataSource class. | Top

Methods
|
| Name | Description |
|---|
.gif) | AddedControl | Called after a child control is added to the Controls collection of the Control object. (Inherited from Control.) | .gif) | AddParsedSubObject | Notifies the server control that an element, either XML or HTML, was parsed, and adds the element to the server control's ControlCollection object. (Inherited from Control.) | .gif) | ApplyStyleSheetSkin | Applies the style properties that are defined in the page style sheet to the control. (Inherited from DataSourceControl.) | .gif) | BuildProfileTree | Infrastructure. Gathers information about the server control and delivers it to the Trace property to be displayed when tracing is enabled for the page. (Inherited from Control.) | .gif) | ClearCachedClientID | Infrastructure. Sets the cached ClientID value to nullNothingnullptra null reference (Nothing in Visual Basic). (Inherited from Control.) | .gif) | ClearChildControlState | Deletes the control-state information for the server control's child controls. (Inherited from Control.) | .gif) | ClearChildState | Deletes the view-state and control-state information for all the server control's child controls. (Inherited from Control.) | .gif) | ClearChildViewState | Deletes the view-state information for all the server control's child controls. (Inherited from Control.) | .gif) | ClearEffectiveClientIDMode | Infrastructure. Sets the ClientIDMode property of the current control instance and of any child controls to Inherit. (Inherited from Control.) | .gif) | CreateChildControls | Called by the ASP.NET page framework to notify server controls that use composition-based implementation to create any child controls they contain in preparation for posting back or rendering. (Inherited from Control.) | .gif) | CreateControlCollection | Creates a collection to store child controls. (Inherited from DataSourceControl.) | .gif) | CreateQueryableView | Returns a queryable view. (Overrides QueryableDataSource..::.CreateQueryableView()()().) | .gif) | CreateView | Creates a new instance of the LinqDataSourceView class that is associated with this control. | .gif) | DataBind()()() | Binds a data source to the invoked server control and all its child controls. (Inherited from Control.) | .gif) | DataBind(Boolean) | Binds a data source to the invoked server control and all its child controls with an option to raise the DataBinding event. (Inherited from Control.) | .gif) | DataBindChildren | Binds a data source to the server control's child controls. (Inherited from Control.) | .gif) | Delete | Performs a delete operation. | .gif) | Dispose | Enables a server control to perform final clean up before it is released from memory. (Inherited from Control.) | .gif) | EnsureChildControls | Determines whether the server control contains child controls. If it does not, it creates child controls. (Inherited from Control.) | .gif) | EnsureID | Creates an identifier for controls that do not have an identifier assigned. (Inherited from Control.) | .gif) | Equals(Object) | Determines whether the specified Object is equal to the current Object. (Inherited from Object.) | .gif) | Finalize | Allows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection. (Inherited from Object.) | .gif) | FindControl(String) | Searches the current naming container for a server control with the specified id parameter. (Inherited from DataSourceControl.) | .gif) | FindControl(String, Int32) | Infrastructure. Searches the current naming container for a server control with the specified id and an integer, specified in the pathOffset parameter, which aids in the search. You should not override this version of the FindControl method. (Inherited from Control.) | .gif) | Focus | Sets input focus to the control. (Inherited from DataSourceControl.) | .gif) | GetDesignModeState | Infrastructure. Gets design-time data for a control. (Inherited from Control.) | .gif) | GetHashCode | Serves as a hash function for a particular type. (Inherited from Object.) | .gif) | GetRouteUrl(Object) | Gets the URL that corresponds to a set of route parameters. (Inherited from Control.) | .gif) | GetRouteUrl(RouteValueDictionary) | Gets the URL that corresponds to a set of route parameters. (Inherited from Control.) | .gif) | GetRouteUrl(String, Object) | Gets the URL that corresponds to a set of route parameters and a route name. (Inherited from Control.) | .gif) | GetRouteUrl(String, RouteValueDictionary) | Gets the URL that corresponds to a set of route parameters and a route name. (Inherited from Control.) | .gif) | GetType | Gets the Type of the current instance. (Inherited from Object.) | .gif) | GetUniqueIDRelativeTo | Returns the prefixed portion of the UniqueID property of the specified control. (Inherited from Control.) | .gif) | GetView | Gets the data source view that is associated with the QueryableDataSource object. (Inherited from QueryableDataSource.) | .gif) | GetViewNames | Gets a collection of names that represent views that are associated with the QueryableDataSource control. (Inherited from QueryableDataSource.) | .gif) | HasControls | Determines if the server control contains any child controls. (Inherited from DataSourceControl.) | .gif) | HasEvents | Returns a value indicating whether events are registered for the control or any child controls. (Inherited from Control.) | .gif) | Insert | Performs an insert operation. | .gif) | IsLiteralContent | Infrastructure. Determines if the server control holds only literal content. (Inherited from Control.) | .gif) | LoadControlState | Restores control-state information from a previous page request that was saved by the SaveControlState method. (Inherited from Control.) | .gif) | LoadViewState | Loads the state of the values in the QueryableDataSource control that must be persisted. (Inherited from QueryableDataSource.) | .gif) | MapPathSecure | Retrieves the physical path that a virtual path, either absolute or relative, maps to. (Inherited from Control.) | .gif) | MemberwiseClone | Creates a shallow copy of the current Object. (Inherited from Object.) | .gif) | OnBubbleEvent | Determines whether the event for the server control is passed up the page's UI server control hierarchy. (Inherited from Control.) | .gif) | OnDataBinding | Raises the DataBinding event. (Inherited from Control.) | .gif) | OnInit | Initializes the LinqDataSource object. (Overrides QueryableDataSource..::.OnInit(EventArgs).) | .gif) | OnLoad | Raises the Load event. (Inherited from Control.) | .gif) | OnPreRender | Raises the PreRender event. (Inherited from Control.) | .gif) | OnUnload | Raises the Unload event. (Overrides Control..::.OnUnload(EventArgs).) | .gif) | OpenFile | Gets a Stream used to read a file. (Inherited from Control.) | .gif) | RaiseBubbleEvent | Assigns any sources of the event and its information to the control's parent. (Inherited from Control.) | .gif) | RaiseDataSourceChangedEvent | Raises the DataSourceChanged event. (Inherited from DataSourceControl.) | .gif) | RaiseViewChanged | Calls the OnDataSourceViewChanged method of the DataSourceView class. (Inherited from QueryableDataSource.) | .gif) | RemovedControl | Called after a child control is removed from the Controls collection of the Control object. (Inherited from Control.) | .gif) | Render | Sends server control content to a provided HtmlTextWriter object, which writes the content to be rendered on the client. (Inherited from Control.) | .gif) | RenderChildren | Outputs the content of a server control's children to a provided HtmlTextWriter object, which writes the content to be rendered on the client. (Inherited from Control.) | .gif) | RenderControl(HtmlTextWriter) | Outputs server control content to a provided HtmlTextWriter object and stores tracing information about the control if tracing is enabled. (Inherited from DataSourceControl.) | .gif) | RenderControl(HtmlTextWriter, ControlAdapter) | Outputs server control content to a provided HtmlTextWriter object using a provided ControlAdapter object. (Inherited from Control.) | .gif) | ResolveAdapter | Gets the control adapter responsible for rendering the specified control. (Inherited from Control.) | .gif) | ResolveClientUrl | Gets a URL that can be used by the browser. (Inherited from Control.) | .gif) | ResolveUrl | Converts a URL into one that is usable on the requesting client. (Inherited from Control.) | .gif) | SaveControlState | Saves any server control state changes that have occurred since the time the page was posted back to the server. (Inherited from Control.) | .gif) | SaveViewState | Saves the current view state of the QueryableDataSource control. (Inherited from QueryableDataSource.) | .gif) | SetDesignModeState | Sets design-time data for a control. (Inherited from Control.) | .gif) | SetRenderMethodDelegate | Infrastructure. Assigns an event handler delegate to render the server control and its content into its parent control. (Inherited from Control.) | .gif) | ToString | Returns a string that represents the current object. (Inherited from Object.) | .gif) | TrackViewState | Tracks view-state changes of the QueryableDataSource control so that the changes can be stored in the StateBag object for the control. (Inherited from QueryableDataSource.) | .gif) | Update | Performs an update operation. | .gif) | UpdateParameterVales | Updates the parameter values that have changed since the previous request. (Inherited from QueryableDataSource.) | Top

Extension Methods

Explicit Interface Implementations
|
| Name | Description |
|---|
.gif) .gif) | IControlBuilderAccessor..::.ControlBuilder | For a description of this member, see IControlBuilderAccessor..::.ControlBuilder. (Inherited from Control.) | .gif) .gif) | IControlDesignerAccessor..::.GetDesignModeState | For a description of this member, see IControlDesignerAccessor..::.GetDesignModeState. (Inherited from Control.) | .gif) .gif) | IControlDesignerAccessor..::.SetDesignModeState | For a description of this member, see IControlDesignerAccessor..::.SetDesignModeState. (Inherited from Control.) | .gif) .gif) | IControlDesignerAccessor..::.SetOwnerControl | Infrastructure. For a description of this member, see IControlDesignerAccessor..::.SetOwnerControl. (Inherited from Control.) | .gif) .gif) | IControlDesignerAccessor..::.UserData | For a description of this member, see IControlDesignerAccessor..::.UserData. (Inherited from Control.) | .gif) .gif) | IDataBindingsAccessor..::.DataBindings | For a description of this member, see IDataBindingsAccessor..::.DataBindings. (Inherited from Control.) | .gif) .gif) | IDataBindingsAccessor..::.HasDataBindings | For a description of this member, see IDataBindingsAccessor..::.HasDataBindings. (Inherited from Control.) | .gif) .gif) | IDataSource..::.DataSourceChanged | Infrastructure. Occurs when a data source control has changed in a way that affects data-bound controls. (Inherited from DataSourceControl.) | .gif) .gif) | IDataSource..::.GetView | Infrastructure. Gets the named DataSourceView object associated with the DataSourceControl control. Some data source controls support only one view, while others support more than one. (Inherited from DataSourceControl.) | .gif) .gif) | IDataSource..::.GetViewNames | Infrastructure. Gets a collection of names, representing the list of DataSourceView objects associated with the DataSourceControl control. (Inherited from DataSourceControl.) | .gif) .gif) | IDynamicDataSource..::.ContextType | For a description of this member, see IDynamicDataSource. | .gif) .gif) | IDynamicDataSource..::.EntitySetName | For a description of this member, see IDynamicDataSource. | .gif) .gif) | IDynamicDataSource..::.Exception | For a description of this member, see IDynamicDataSource. | .gif) .gif) | IExpressionsAccessor..::.Expressions | For a description of this member, see IExpressionsAccessor..::.Expressions. (Inherited from Control.) | .gif) .gif) | IExpressionsAccessor..::.HasExpressions | For a description of this member, see IExpressionsAccessor..::.HasExpressions. (Inherited from Control.) | .gif) .gif) | IListSource..::.ContainsListCollection | Infrastructure. Indicates whether the data source control is associated with one or more lists of data. (Inherited from DataSourceControl.) | .gif) .gif) | IListSource..::.GetList | Infrastructure. Gets a list of data source controls that can be used as sources of lists of data. (Inherited from DataSourceControl.) | .gif) .gif) | IParserAccessor..::.AddParsedSubObject | For a description of this member, see IParserAccessor..::.AddParsedSubObject. (Inherited from Control.) | Top

Remarks
In this topic: IntroductionLanguage-Integrated Query (LINQ) is a query syntax that defines a set of query operators that enable traversal, filter, and projection operations to be expressed in a declarative way in any .NET-based programming language. The data object can be an in-memory data collection or an object that represents data from a database. You can retrieve or modify the data without having to write SQL commands for each operation. The LinqDataSource control enables you to use LINQ in an ASP.NET Web page by setting properties in markup text. The LinqDataSource control uses LINQ to SQL to automatically generate the data commands. For more information about LINQ to SQL, see LINQ to SQL. When you are retrieving data from an in-memory data collection, you set the ContextTypeName property to the class that contains the data collection. You set the TableName property to the property or field that returns the data collection. For example, you might have a class named Person that contains a property named FavoriteCities that returns an array of string values. In that case, you set the ContextTypeName property to Person and set the TableName property to FavoriteCities. When you are querying a database, you must first create entity classes that represent the database and its tables. You can use the Object Relational Designer or the SqlMetal.exe utility to generate these classes. You then set the ContextTypeName property to the class that represents the database and set the TableName property to the property that represents the database table. Order of OperationsThe LinqDataSource control applies data operations in the following order: Where (specify which data records to return). Order By (sort). Group By (aggregate data records that share values). Order Groups By (sort grouped data). Select (specify which fields or properties to return). Auto-sort (sort data records by a property that the user has selected). Auto-page (retrieve a subset of data records that were selected by the user).
You can add conditions to the Where property to filter the data records that are returned from a query. If the Where property is not set, the LinqDataSource control retrieves every record from the data object. Ordering DataYou use the OrderBy property to specify the names of properties from the returned data to sort by. Note |
|---|
When you use the LinqDataSource control with SQL Server 2000 or SQL Server Compact 3.5 and the AutoPage property is set to true, you must provide a value in the OrderBy property. By default, the AutoPage property is true. If you assign a value to the Select property, you must also include all identity columns in the list of properties that is returned in the query. |
Grouping DataYou use the GroupBy property to specify which properties are used to consolidate data records that have the same values. When you group data, you can include Key and It, which are dynamically created properties, in the Select property. The Key property refers to the values in the property or properties that were used to group the data. For example, if you group by a property named Category, the Key property will contain all unique values in the Category property. The It property refers to a collection of individual records in a grouping of data. You can iterate over the It property to retrieve the individual records that have been consolidated in the grouping operation. For example, if you group by a property named Category, the It property contains all the individual records that share a common value in the Category property. You use the OrderGroupsBy property to specify the properties to use for sorting the grouped data. When you group data, the OrderBy property specifies how the individual records within the grouped data are sorted. By default, the LinqDataSource control retrieves values for all the properties from a data object. You use the Select property to specify which properties to return if you want to work with a subset of available properties. The Select operation is applied after the Where, Order By, and Group By operations. Therefore, if you create an aliased name in a Select clause, the alias is not available in the other clauses. Data ModificationsYou can specify whether data modifications are enabled by using the EnableDelete, EnableInsert, and EnableUpdate properties. The user interface for modifying data from a LinqDataSource control is typically provided through a data-bound control, such as a DetailsView control. In addition to setting EnableDelete, EnableInsert, or EnableUpdate to true, the following conditions are required to enable automatic data modifications: You can restrict which properties are displayed in a data-bound control in two ways. You can either set the Select property to a subset of properties, or you can define the fields for a data-bound control by adding DataControlField controls. However, if you set the Select property, it means that automatic update, insert, and delete operations cannot be enabled. If you want to enable automatic data modifications while you work with a subset of available properties, do not set the Select property. Instead, retrieve all properties from the data object and manage which ones are displayed by using the data-bound control. When you use the DetailsView control or the GridView control, you must also set the AutoGenerateRows or AutoGenerateColumns properties to false. This prevents the data-bound control from automatically including buttons for editing and deleting the data. Any values that are not displayed in the data-bound control are stored in view state. They are passed unchanged to the data source when the data update is performed. Evaluating Values at Run TimeIf you have to evaluate values at run time for ordering, filtering, or grouping values, you can add parameters to the WhereParameters, GroupByParameters, OrderGroupsByParameters, or OrderByParameters collections. If you want to specify default values, you can add parameters to the InsertParameters collection. If you want to examine or modify values before the data operation is executed, you can handle the Deleting, Inserting, Selecting, or Updating events. You can also handle these events in order to cancel the data operation or to examine validation errors that occurred when you set properties in the data class based on user input. To examine values after the data operation has finished, handle the Deleted, Inserted, Selected, or Updated events. Working with Stored ProceduresDeclarative Syntax
<asp:LinqDataSource
AutoGenerateOrderByClause="True|False"
AutoGenerateWhereClause="True|False"
AutoPage="True|False"
AutoSort="True|False"
ContextTypeName="string"
EnableDelete="True|False"
EnableInsert="True|False"
EnableTheming="True|False"
EnableUpdate="True|False"
EnableViewState="True|False"
GroupBy="string"
ID="string"
OnContextCreated="ContextCreated event handler"
OnContextCreating="ContextCreating event handler"
OnContextDisposing="ContextDisposing event handler"
OnDataBinding="DataBinding event handler"
OnDeleted="Deleted event handler"
OnDeleting="Deleting event handler"
OnDisposed="Disposed event handler"
OnInit="Init event handler"
OnInserted="Inserted event handler"
OnInserting="Inserting event handler"
OnLoad="Load event handler"
OnPreRender="PreRender event handler"
OnSelected="Selected event handler"
OnSelecting="Selecting event handler"
OnUnload="Unload event handler"
OnUpdated="Updated event handler"
OnUpdating="Updating event handler"
OrderBy="string"
runat="server"
Select="string"
SkinID="string"
StoreOriginalValuesInViewState="True|False"
TableName="string"
Visible="True|False"
Where="string"
>
<GroupByParameters />
<InsertParameters />
<OrderByParameters />
<SelectParameters />
<WhereParameters />
</asp:LinqDataSource>

Examples
The following example shows a LinqDataSource control that retrieves data from an entity class named Products. The entity class could have been generated by using the O/R Designer or the SqlMetal.exe utility. The Where property is set to return only records that have a value in the Price property greater than 50. A GridView control is bound to the LinqDataSource control to display the data.
<asp:LinqDataSource
ContextTypeName="ExampleDataContext"
TableName="Products"
Where="Price > 50"
ID="LinqDataSource1"
runat="server">
</asp:LinqDataSource>
<asp:GridView
DataSourceID="LinqDataSource1"
ID="GridView1"
runat="server">
</asp:GridView>
<asp:LinqDataSource
ContextTypeName="ExampleDataContext"
TableName="Products"
Where="Price > 50"
ID="LinqDataSource1"
runat="server">
</asp:LinqDataSource>
<asp:GridView
DataSourceID="LinqDataSource1"
ID="GridView1"
runat="server">
</asp:GridView>
The following example shows a LinqDataSource control that enables users to update, delete, and insert records in the data source. A DetailsView control is bound to the LinqDataSource control and enables users to see and modify the data. Notice that no SQL commands are required in order to select, update, delete, or insert the records.
<asp:LinqDataSource
ContextTypeName="ExampleDataContext"
TableName="Products"
EnableUpdate="true"
EnableInsert="true"
EnableDelete="true"
ID="LinqDataSource1"
runat="server">
</asp:LinqDataSource>
<asp:DetailsView
DataKeyNames="ProductID"
AutoGenerateEditButton="true"
AutoGenerateDeleteButton="true"
AutoGenerateInsertButton="true"
AllowPaging="true"
DataSourceID="LinqDataSource1"
ID="GridView1"
runat="server">
</asp:DetailsView>
<asp:LinqDataSource
ContextTypeName="ExampleDataContext"
TableName="Products"
EnableUpdate="true"
EnableInsert="true"
EnableDelete="true"
ID="LinqDataSource1"
runat="server">
</asp:LinqDataSource>
<asp:DetailsView
DataKeyNames="ProductID"
AutoGenerateEditButton="true"
AutoGenerateDeleteButton="true"
AutoGenerateInsertButton="true"
AllowPaging="true"
DataSourceID="LinqDataSource1"
ID="GridView1"
runat="server">
</asp:DetailsView>
The following example shows an event handler for the Selecting event that sets the data object based on a value in the Web page.
Partial Class Default3
Inherits System.Web.UI.Page
Dim citiesArray() As String = _
{ _
"Atlanta", _
"Charlotte", _
"Denver", _
"New York", _
"San Francisco" _
}
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
End Sub
Protected Sub LinqDataSource_Selecting(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.LinqDataSourceSelectEventArgs) Handles LinqDataSource1.Selecting
Dim cities = From city In citiesArray _
Where city > "B" _
Select city
e.Result = cities
' Or we could set e.Result = citiesArray to return all rows.
End Sub
End Class
public partial class Default3 : System.Web.UI.Page
{
string[] citiesArray =
{
"Atlanta",
"Charlotte",
"Denver",
"New York",
"San Francisco"
};
protected void Page_Load(object sender, EventArgs e)
{
}
protected void LinqDataSource_Selecting(object sender, LinqDataSourceSelectEventArgs e)
{
var cities = from city in citiesArray
where city.CompareTo("B") > 0
select city;
e.Result = cities;
// Or we could set e.Result = citiesArray to return all rows.
}
}
The following example shows a LinqDataSource control that is configured to group by two columns. The Key property references an object that has two properties, ProductCategory and Color. The object represented by It is renamed (aliased) to Products. The renamed Products object contains a collection of the individual records in a grouping. Each instance will contain all the columns from the Products table.
<asp:LinqDataSource
ContextTypeName="ExampleDataContext"
TableName="Products"
GroupBy="new(ProductCategory, Color)"
Select="new(Key,
It As Products,
Max(ListPrice) As MaxListPrice,
Min(ListPrice) As MinListPrice)"
ID="LinqDataSource1"
runat="server">
</asp:LinqDataSource>
<asp:LinqDataSource
ContextTypeName="ExampleDataContext"
TableName="Products"
GroupBy="new(ProductCategory, Color)"
Select="new(Key,
It As Products,
Max(ListPrice) As MaxListPrice,
Min(ListPrice) As MinListPrice)"
ID="LinqDataSource1"
runat="server">
</asp:LinqDataSource>
The following example shows two ListView controls that display the data from the LinqDataSource control in the previous example. One ListView control displays the grouped data, and the other ListView control displays the individual names of products that belong to that group. The nested data-bound control's DataSource property is set to Products, which is the alias for the It object.
<asp:ListView
DataSourceID="LinqDataSource1"
ID="ListView1" runat="server">
<LayoutTemplate>
<table id="Table1"
style="background-color:Teal;color:White"
runat="server"
class="Layout">
<thead>
<tr>
<th><b>Product Category</b></th>
<th><b>Color</b></th>
<th><b>Highest Price</b></th>
<th><b>Lowest Price</b></th>
</tr>
</thead>
<tr runat="server" id="itemPlaceholder">
</tr>
</table>
</LayoutTemplate>
<ItemTemplate>
<tr>
<td><%# Eval("key.ProductCategory") %></td>
<td><%# Eval("key.Color") %></td>
<td><%# Eval("MaxListPrice") %></td>
<td><%# Eval("MinListPrice") %></td>
</tr>
<tr>
<td colspan="4" style="width:100%;background-color:White;color:Black">
<asp:ListView
DataSource='<%# Eval("Products") %>'
runat="server"
ID="ListView2">
<LayoutTemplate>
<div runat="server" id="itemPlaceholder" />
</LayoutTemplate>
<ItemTemplate>
<%# Eval("ProductName") %><br />
</ItemTemplate>
</asp:ListView>
</td>
</tr>
</ItemTemplate>
</asp:ListView>
<asp:ListView
DataSourceID="LinqDataSource1"
ID="ListView1" runat="server">
<LayoutTemplate>
<table id="Table1"
style="background-color:Teal;color:White"
runat="server"
class="Layout">
<thead>
<tr>
<th><b>Product Category</b></th>
<th><b>Color</b></th>
<th><b>Highest Price</b></th>
<th><b>Lowest Price</b></th>
</tr>
</thead>
<tr runat="server" id="itemPlaceholder">
</tr>
</table>
</LayoutTemplate>
<ItemTemplate>
<tr>
<td><%# Eval("key.ProductCategory") %></td>
<td><%# Eval("key.Color") %></td>
<td><%# Eval("MaxListPrice") %></td>
<td><%# Eval("MinListPrice") %></td>
</tr>
<tr>
<td colspan="4" style="width:100%;background-color:White;color:Black">
<asp:ListView
DataSource='<%# Eval("Products") %>'
runat="server"
ID="ListView2">
<LayoutTemplate>
<div runat="server" id="itemPlaceholder" />
</LayoutTemplate>
<ItemTemplate>
<%# Eval("ProductName") %><br />
</ItemTemplate>
</asp:ListView>
</td>
</tr>
</ItemTemplate>
</asp:ListView>

Version Information
.NET FrameworkSupported in: 4, 3.5

Platforms
Windows 7, Windows Vista SP1 or later, Windows XP SP3, Windows Server 2008 (Server Core Role not supported), Windows Server 2008 R2 (Server Core Role not supported), Windows Server 2003 SP2
The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.

Thread Safety
Any public static ( Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

See Also
|
Bibliothèque de classes .NET Framework LinqDataSource, classe Permet d'utiliser LINQ (Language-Integrated Query) sur une page Web ASP.NET via le texte de balisage pour récupérer et modifier des données à partir d'un objet de données.

Hiérarchie d'héritage
Espace de noms :
System.Web.UI.WebControls
Assembly :
System.Web.Extensions (dans System.Web.Extensions.dll)

Syntaxe
<ToolboxBitmapAttribute(GetType(LinqDataSource), "LinqDataSource.bmp")> _
Public Class LinqDataSource _
Inherits ContextDataSource _
Implements IDynamicDataSource, IDataSource
[ToolboxBitmapAttribute(typeof(LinqDataSource), "LinqDataSource.bmp")]
public class LinqDataSource : ContextDataSource,
IDynamicDataSource, IDataSource
[ToolboxBitmapAttribute(typeof(LinqDataSource), L"LinqDataSource.bmp")]
public ref class LinqDataSource : public ContextDataSource,
IDynamicDataSource, IDataSource
[<ToolboxBitmapAttribute(typeof(LinqDataSource), "LinqDataSource.bmp")>]
type LinqDataSource =
class
inherit ContextDataSource
interface IDynamicDataSource
interface IDataSource
end
Le type LinqDataSource expose les membres suivants.

Constructeurs
|
| Nom | Description |
|---|
.gif) | LinqDataSource | Initialise une nouvelle instance de la classe LinqDataSource. | Début

Méthodes
|
| Nom | Description |
|---|
.gif) | AddedControl | Appelée après l'ajout d'un contrôle enfant à la collection Controls de l'objet Control. (Hérité de Control.) | .gif) | AddParsedSubObject | Avertit le contrôle serveur qu'un élément XML ou HTML a été analysé et l'ajoute à l'objet ControlCollection du contrôle serveur. (Hérité de Control.) | .gif) | ApplyStyleSheetSkin | Applique les propriétés de style qui sont définies dans la feuille de style de la page au contrôle. (Hérité de DataSourceControl.) | .gif) | BuildProfileTree | Infrastructure. Collecte des informations sur le contrôle serveur et les livre à la propriété Trace à afficher lorsque le traçage est activé pour la page. (Hérité de Control.) | .gif) | ClearCachedClientID | Infrastructure. Affecte à la valeur ClientID mise en cache la valeur nullNothingnullptrune référence null (Nothing en Visual Basic). (Hérité de Control.) | .gif) | ClearChildControlState | Supprime les informations sur l'état du contrôle des contrôles enfants du contrôle serveur. (Hérité de Control.) | .gif) | ClearChildState | Supprime les informations sur l'état d'affichage et sur l'état du contrôle de tous les contrôles enfants du contrôle serveur. (Hérité de Control.) | .gif) | ClearChildViewState | Supprime les informations d'état d'affichage de tous les contrôles enfants du contrôle serveur. (Hérité de Control.) | .gif) | ClearEffectiveClientIDMode | Infrastructure. Affecte la valeur Inherit à la propriété ClientIDMode de l'instance de contrôle actuelle et de tous contrôles enfants. (Hérité de Control.) | .gif) | CreateChildControls | Appelé par l'infrastructure de page ASP.NET pour avertir les contrôles serveur qui utilisent une implémentation basée sur la composition qu'ils doivent créer tous les contrôles enfants qu'ils contiennent en préparation de la publication ou du rendu. (Hérité de Control.) | .gif) | CreateControlCollection | Crée une collection pour stocker des contrôles enfants. (Hérité de DataSourceControl.) | .gif) | CreateQueryableView | Retourne un affichage pouvant être interrogé. (Substitue QueryableDataSource..::.CreateQueryableView()()().) | .gif) | CreateView | Crée une nouvelle instance de la classe LinqDataSourceView associée à ce contrôle. | .gif) | DataBind()()() | Lie une source de données au contrôle serveur appelé et à tous ses contrôles enfants. (Hérité de Control.) | .gif) | DataBind(Boolean) | Lie une source de données au contrôle serveur appelé et tous ses contrôles enfants avec une option pour déclencher l'événement DataBinding. (Hérité de Control.) | .gif) | DataBindChildren | Lie une source de données aux contrôles enfants du contrôle serveur. (Hérité de Control.) | .gif) | Delete | Exécute une opération de suppression. | .gif) | Dispose | Permet à un contrôle serveur d'effectuer le nettoyage final avant qu'il soit libéré de la mémoire. (Hérité de Control.) | .gif) | EnsureChildControls | Détermine si le contrôle serveur contient des contrôles enfants. S'il ne contient pas de contrôles enfants, il en crée. (Hérité de Control.) | .gif) | EnsureID | Crée un identificateur pour les contrôles auxquels aucun identificateur n'est assigné. (Hérité de Control.) | .gif) | Equals(Object) | Détermine si l'Object spécifié est égal à l'Object en cours. (Hérité de Object.) | .gif) | Finalize | Autorise un objet à tenter de libérer des ressources et d'exécuter d'autres opérations de netto***ge avant qu'il ne soit récupéré par l'opération garbage collection. (Hérité de Object.) | .gif) | FindControl(String) | Recherche un contrôle serveur possédant le paramètre id spécifié dans le conteneur d'attribution de noms actuel. (Hérité de DataSourceControl.) | .gif) | FindControl(String, Int32) | Infrastructure. Recherche le conteneur d'attribution de noms actuel d'un contrôle serveur avec l'id spécifié et un entier, spécifié dans le paramètre pathOffset, qui facilite la recherche. Vous ne devez pas substituer cette version de la méthode FindControl. (Hérité de Control.) | .gif) | Focus | Définit le focus d'entrée sur le contrôle. (Hérité de DataSourceControl.) | .gif) | GetDesignModeState | Infrastructure. Obtient les données au moment du design pour un contrôle. (Hérité de Control.) | .gif) | GetHashCode | Sert de fonction de hachage pour un type particulier. (Hérité de Object.) | .gif) | GetRouteUrl(Object) | Obtient l'URL qui correspond à un jeu de paramètres d'itinéraire. (Hérité de Control.) | .gif) | GetRouteUrl(RouteValueDictionary) | Obtient l'URL qui correspond à un jeu de paramètres d'itinéraire. (Hérité de Control.) | .gif) | GetRouteUrl(String, Object) | Obtient l'URL qui correspond à un jeu de paramètres d'itinéraire et à un nom d'itinéraire. (Hérité de Control.) | .gif) | GetRouteUrl(String, RouteValueDictionary) | Obtient l'URL qui correspond à un jeu de paramètres d'itinéraire et à un nom d'itinéraire. (Hérité de Control.) | .gif) | GetType | Obtient le Type de l'instance actuelle. (Hérité de Object.) | .gif) | GetUniqueIDRelativeTo | Retourne la partie préfixée de la propriété UniqueID du contrôle spécifié. (Hérité de Control.) | .gif) | GetView | Obtient la vue de source de données associée à l'objet QueryableDataSource. (Hérité de QueryableDataSource.) | .gif) | GetViewNames | Obtient une collection de noms qui représentent les affichages associés au contrôle QueryableDataSource. (Hérité de QueryableDataSource.) | .gif) | HasControls | Détermine si le contrôle serveur contient des contrôles enfants. (Hérité de DataSourceControl.) | .gif) | HasEvents | Retourne une valeur indiquant si des événements sont inscrits pour le contrôle ou des contrôles enfants. (Hérité de Control.) | .gif) | Insert | Exécute une opération d'insertion. | .gif) | IsLiteralContent | Infrastructure. Détermine si le contrôle serveur ne détient qu'un contenu littéral. (Hérité de Control.) | .gif) | LoadControlState | Restaure des informations sur l'état du contrôle à partir d'une demande de page antérieure enregistrée par la méthode SaveControlState. (Hérité de Control.) | .gif) | LoadViewState | Charge l'état des valeurs du contrôle QueryableDataSource qui doivent être persistantes. (Hérité de QueryableDataSource.) | .gif) | MapPathSecure | Récupère le chemin d'accès physique auquel un chemin d'accès virtuel, absolu ou relatif, correspond. (Hérité de Control.) | .gif) | MemberwiseClone | Crée une copie superficielle de l'objet Object actif. (Hérité de Object.) | .gif) | OnBubbleEvent | Détermine si l'événement pour le contrôle serveur est passé dans la hiérarchie des contrôles serveur de l'interface utilisateur de la page. (Hérité de Control.) | .gif) | OnDataBinding | Déclenche l'événement DataBinding. (Hérité de Control.) | .gif) | OnInit | Initialise l'objet LinqDataSource. (Substitue QueryableDataSource..::.OnInit(EventArgs).) | .gif) | OnLoad | Déclenche l'événement Load. (Hérité de Control.) | .gif) | OnPreRender | Déclenche l'événement PreRender. (Hérité de Control.) | .gif) | OnUnload | Déclenche l'événement Unload. (Substitue Control..::.OnUnload(EventArgs).) | .gif) | OpenFile | Obtient un Stream utilisé pour lire un fichier. (Hérité de Control.) | .gif) | RaiseBubbleEvent | Assigne les sources éventuelles de l'événement et ses informations au parent du contrôle. (Hérité de Control.) | .gif) | RaiseDataSourceChangedEvent | Déclenche l'événement DataSourceChanged. (Hérité de DataSourceControl.) | .gif) | RaiseViewChanged | Appelle la méthode OnDataSourceViewChanged de la classe DataSourceView. (Hérité de QueryableDataSource.) | .gif) | RemovedControl | Appelée après la suppression d'un contrôle enfant dans la collection Controls de l'objet Control. (Hérité de Control.) | .gif) | Render | Envoie le contenu du contrôle serveur à un objet HtmlTextWriter fourni, qui écrit le contenu à rendre sur le client. (Hérité de Control.) | .gif) | RenderChildren | Renvoie le contenu des enfants d'un contrôle serveur dans un objet HtmlTextWriter fourni, qui écrit le contenu à rendre sur le client. (Hérité de Control.) | .gif) | RenderControl(HtmlTextWriter) | Renvoie le contenu du contrôle serveur dans un objet HtmlTextWriter fourni et stocke des informations de traçage au sujet du contrôle si le traçage est activé. (Hérité de DataSourceControl.) | .gif) | RenderControl(HtmlTextWriter, ControlAdapter) | Génère le contenu du contrôle serveur dans un objet HtmlTextWriter à l'aide d'un objet ControlAdapter fourni. (Hérité de Control.) | .gif) | ResolveAdapter | Obtient l'adaptateur de contrôles responsable du rendu du contrôle spécifié. (Hérité de Control.) | .gif) | ResolveClientUrl | Obtient une URL qui peut être utilisée par le navigateur. (Hérité de Control.) | .gif) | ResolveUrl | Convertit une URL en une URL que le client soit en mesure d'utiliser. (Hérité de Control.) | .gif) | SaveControlState | Enregistre les modifications éventuellement apportées à l'état du contrôle serveur depuis la publication de la page sur le serveur. (Hérité de Control.) | .gif) | SaveViewState | Enregistre l'état d'affichage actuel du contrôle QueryableDataSource. (Hérité de QueryableDataSource.) | .gif) | SetDesignModeState | Définit les données au moment du design pour un contrôle. (Hérité de Control.) | .gif) | SetRenderMethodDelegate | Infrastructure. Assigne un délégué de gestionnaires d'événements pour générer le rendu du contrôle serveur et de son contenu dans son contrôle parent. (Hérité de Control.) | .gif) | ToString | Retourne une chaîne qui représente l'objet actuel. (Hérité de Object.) | .gif) | TrackViewState | Suit les modifications d'état d'affichage apportées au contrôle QueryableDataSource afin que les modifications puissent être stockées dans l'objet StateBag du contrôle. (Hérité de QueryableDataSource.) | .gif) | Update | Exécute une opération de mise à jour. | .gif) | UpdateParameterVales | Met à jour les valeurs de paramètres qui ont changé depuis la demande précédente. (Hérité de QueryableDataSource.) | Début

Méthodes d'extension

Implémentations d'interface explicite
|
| Nom | Description |
|---|
.gif) .gif) | IControlBuilderAccessor..::.ControlBuilder | Pour obtenir une description de ce membre, consultez IControlBuilderAccessor..::.ControlBuilder. (Hérité de Control.) | .gif) .gif) | IControlDesignerAccessor..::.GetDesignModeState | Pour obtenir une description de ce membre, consultez IControlDesignerAccessor..::.GetDesignModeState. (Hérité de Control.) | .gif) .gif) | IControlDesignerAccessor..::.SetDesignModeState | Pour obtenir une description de ce membre, consultez IControlDesignerAccessor..::.SetDesignModeState. (Hérité de Control.) | .gif) .gif) | IControlDesignerAccessor..::.SetOwnerControl | Infrastructure. Pour obtenir une description de ce membre, consultez IControlDesignerAccessor..::.SetOwnerControl. (Hérité de Control.) | .gif) .gif) | IControlDesignerAccessor..::.UserData | Pour obtenir une description de ce membre, consultez IControlDesignerAccessor..::.UserData. (Hérité de Control.) | .gif) .gif) | IDataBindingsAccessor..::.DataBindings | Pour obtenir une description de ce membre, consultez IDataBindingsAccessor..::.DataBindings. (Hérité de Control.) | .gif) .gif) | IDataBindingsAccessor..::.HasDataBindings | Pour obtenir une description de ce membre, consultez IDataBindingsAccessor..::.HasDataBindings. (Hérité de Control.) | .gif) .gif) | IDataSource..::.DataSourceChanged | Infrastructure. Se produit lorsqu'un contrôle de code source de données a changé d'une manière qui affecte des contrôles liés aux données. (Hérité de DataSourceControl.) | .gif) .gif) | IDataSource..::.GetView | Infrastructure. Obtient l'objet nommé DataSourceView associé au contrôle DataSourceControl. Certains contrôles de code source de données ne prennent en charge qu'un affichage, contrairement à d'autres qui en gèrent plusieurs. (Hérité de DataSourceControl.) | .gif) .gif) | IDataSource..::.GetViewNames | Infrastructure. Obtient une collection de noms, représentant la liste des objets DataSourceView associés au contrôle DataSourceControl. (Hérité de DataSourceControl.) | .gif) .gif) | IDynamicDataSource..::.ContextType | Pour obtenir une description de ce membre, consultez IDynamicDataSource. | .gif) .gif) | IDynamicDataSource..::.EntitySetName | Pour obtenir une description de ce membre, consultez IDynamicDataSource. | .gif) .gif) | IDynamicDataSource..::.Exception | Pour obtenir une description de ce membre, consultez IDynamicDataSource. | .gif) .gif) | IExpressionsAccessor..::.Expressions | Pour obtenir une description de ce membre, consultez IExpressionsAccessor..::.Expressions. (Hérité de Control.) | .gif) .gif) | IExpressionsAccessor..::.HasExpressions | Pour obtenir une description de ce membre, consultez IExpressionsAccessor..::.HasExpressions. (Hérité de Control.) | .gif) .gif) | IListSource..::.ContainsListCollection | Infrastructure. Indique si le contrôle de code source de données est associé à une ou à plusieurs listes de données. (Hérité de DataSourceControl.) | .gif) .gif) | IListSource..::.GetList | Infrastructure. Obtient une liste des contrôles de code source de données qui peuvent être utilisés comme sources des listes de données. (Hérité de DataSourceControl.) | .gif) .gif) | IParserAccessor..::.AddParsedSubObject | Pour obtenir une description de ce membre, consultez IParserAccessor..::.AddParsedSubObject. (Hérité de Control.) | Début

Notes
Dans cette rubrique : IntroductionLINQ (Language-Integrated Query) est une syntaxe de requête qui définit un jeu d'opérateurs de requête permettant d'exprimer de manière déclarative les opérations de parcours, de filtre et de projection dans tous les langages de programmation .NET. L'objet de données peut être une collection de données en mémoire ou un objet qui représente les données d'une base de données. Vous pouvez récupérer ou modifier les données sans écrire de commandes SQL pour chaque opération. Le contrôle LinqDataSource vous permet d'utiliser la requête LINQ sur une page Web ASP.NET en définissant les propriétés dans le texte de balisage. Le contrôle LinqDataSource utilise la requête LINQ to SQL pour générer automatiquement les commandes de données. Pour plus d'informations sur LINQ to SQL, consultez LINQ to SQL. Lorsque vous récupérez des données à partir d'une collection de données en mémoire, vous affectez à la propriété ContextTypeName la classe qui contient la collection de données. Vous affectez comme valeur à la propriété TableName la propriété ou le champ qui retourne la collection de données. Par exemple, une classe appelée Person peut contenir une propriété appelée FavoriteCities qui retourne un tableau de valeurs de chaîne. Dans ce cas, vous affectez la valeur Person à la propriété ContextTypeName et la valeur FavoriteCities à la propriété TableName. Lorsque vous interrogez une base de données, vous devez d'abord créer des classes d'entité qui représentent la base de données et ses tables. Vous pouvez utiliser l'utilitaire Concepteur Objet/Relationnel ou SqlMetal.exe pour générer ces classes. Vous affectez ensuite à la propriété ContextTypeName la classe qui représente la base de données et vous affectez à la propriété TableName la propriété qui représente la table de base de données. Ordre d'opérationsLe contrôle LinqDataSource applique les opérations de données dans l'ordre suivant : Where (spécifie les enregistrements de données à retourner). Order By (trie). Group By (regroupe les enregistrements de données qui partagent des valeurs). Order Groups By (trie les données groupées). Select (spécifie les champs ou propriétés à retourner). Auto-sort (trie les enregistrements de données selon une propriété sélectionnée par l'utilisateur). Auto-page (récupère un sous-ensemble d'enregistrements de données sélectionnés par l'utilisateur).
Vous pouvez ajouter des conditions à la propriété Where pour filtrer les enregistrements de données retournés par une requête. Si la propriété Where n'est pas définie, le contrôle LinqDataSource récupère tous les enregistrements de l'objet de données. Classification de donnéesVous utilisez la propriété OrderBy pour spécifier le nom des propriétés à partir des données retournées à trier. Remarque |
|---|
Lorsque vous utilisez le contrôle LinqDataSource avec SQL Server 2000 ou SQL Server Compact 3.5 et que la propriété AutoPage a la valeur true, vous devez fournir une valeur dans la propriété OrderBy. Par défaut, la propriété AutoPage a la valeur true. Si vous assignez une valeur à la propriété Select, vous devez également inclure toutes les colonnes d'identité dans la liste de propriétés retournée dans la requête. |
Regroupement de donnéesVous utilisez la propriété GroupBy pour spécifier les propriétés utilisées pour consolider des enregistrements de données ayant les mêmes valeurs. Lorsque vous regroupez des données, vous pouvez inclure les propriétés créées dynamiquement Key et It dans la propriété Select. La propriété Key fait référence aux valeurs de la ou des propriétés utilisées pour regrouper les données. Par exemple, si vous effectuez un regroupement par une propriété appelée Category, la propriété Key contiendra toutes les valeurs uniques de la propriété Category. La propriété It fait référence à une collection d'enregistrements individuels dans un regroupement de données. Vous pouvez itérer sur la propriété It pour récupérer les enregistrements individuels consolidés dans l'opération de regroupement. Par exemple, si vous effectuez un regroupement par une propriété appelée Category, la propriété It contient tous les enregistrements individuels qui partagent une valeur commune dans la propriété Category. Vous utilisez la propriété OrderGroupsBy pour spécifier les propriétés à utiliser pour le tri des données groupées. Lorsque vous groupez des données, la propriété OrderBy spécifie comment sont triés les enregistrements individuels dans les données groupées. Par défaut, le contrôle LinqDataSource récupère les valeurs pour toutes les propriétés d'un objet de données. Vous utilisez la propriété Select pour spécifier les propriétés à retourner si vous souhaitez utiliser un sous-ensemble de propriétés disponibles. L'opération Select est appliquée après les opérations Where, Order By et Group By. Par conséquent, si vous créez un nom d'alias dans une clause Select, l'alias n'est pas disponible dans les autres clauses. Modifications de donnéesVous pouvez spécifier si les modifications de données sont activées à l'aide des propriétés EnableDelete, EnableInsert et EnableUpdate. En général, l'interface utilisateur pour la modification des données d'un contrôle LinqDataSource est fournie via un contrôle lié aux données, tel qu'un contrôle DetailsView. En plus d'affecter la valeur true à EnableDelete, EnableInsert ou EnableUpdate, les conditions suivantes sont requises pour activer la modification automatique des données : Il existe deux manières de limiter le nombre de propriétés affichées dans un contrôle lié aux données. Vous pouvez affecter un sous-ensemble de propriétés à la propriété Select ou définir les champs d'un contrôle lié aux données en ajoutant des contrôles DataControlField. Toutefois, si vous définissez la propriété Select, les opérations automatiques de mise à jour, d'insertion et de suppression ne pourront pas être activées. Pour activer la modification automatique des données pendant que vous utilisez un sous-ensemble de propriétés disponibles, ne définissez pas la propriété Select. Récupérez plutôt toutes les propriétés depuis l'objet de données et gérez celles qui sont affichées à l'aide du contrôle lié aux données. Lorsque vous utilisez le contrôle DetailsView ou GridView, vous devez également affecter la valeur false à la propriété AutoGenerateRows ou AutoGenerateColumns. Cela empêche l'ajout automatique de boutons pour la modification et la suppression des données par le contrôle lié aux données. Les valeurs qui ne sont pas affichées dans le contrôle lié aux données sont stockées dans l'état d'affichage. Elles sont passées à la source de données sans être modifiées lors de la mise à jour des données. Évaluation de Valeurs au moment de l'exécutionSi vous devez évaluer des valeurs de classement, de filtrage ou de regroupement au moment de l'exécution, vous pouvez ajouter des paramètres aux collections WhereParameters, GroupByParameters, OrderGroupsByParameters ou OrderByParameters. Si vous souhaitez spécifier des valeurs par défaut, vous pouvez ajouter des paramètres à la collection InsertParameters. Si vous souhaitez examiner ou modifier des valeurs avant d'exécuter l'opération de données, vous pouvez gérer l'événement Deleting, Inserting, Selecting ou Updating. Vous pouvez également traiter ces événements afin d'annuler l'opération de données ou d'examiner les erreurs de validation qui se sont produites lorsque vous avez défini les propriétés de la classe de données sur la base de l'entrée d'utilisateur. Pour examiner les valeurs une fois l'opération de données terminée, gérez l'événement Deleted, Inserted, Selected ou Updated. Utilisation de procédures stockéesSyntaxe déclarative
<asp:LinqDataSource
AutoGenerateOrderByClause="True|False"
AutoGenerateWhereClause="True|False"
AutoPage="True|False"
AutoSort="True|False"
ContextTypeName="string"
EnableDelete="True|False"
EnableInsert="True|False"
EnableTheming="True|False"
EnableUpdate="True|False"
EnableViewState="True|False"
GroupBy="string"
ID="string"
OnContextCreated="ContextCreated event handler"
OnContextCreating="ContextCreating event handler"
OnContextDisposing="ContextDisposing event handler"
OnDataBinding="DataBinding event handler"
OnDeleted="Deleted event handler"
OnDeleting="Deleting event handler"
OnDisposed="Disposed event handler"
OnInit="Init event handler"
OnInserted="Inserted event handler"
OnInserting="Inserting event handler"
OnLoad="Load event handler"
OnPreRender="PreRender event handler"
OnSelected="Selected event handler"
OnSelecting="Selecting event handler"
OnUnload="Unload event handler"
OnUpdated="Updated event handler"
OnUpdating="Updating event handler"
OrderBy="string"
runat="server"
Select="string"
SkinID="string"
StoreOriginalValuesInViewState="True|False"
TableName="string"
Visible="True|False"
Where="string"
>
<GroupByParameters />
<InsertParameters />
<OrderByParameters />
<SelectParameters />
<WhereParameters />
</asp:LinqDataSource>

Exemples
L'exemple suivant décrit un contrôle LinqDataSource qui récupère les données d'une classe d'entité appelée Products. La classe d'entité peut être générée à l'aide de l'utilitaire Concepteur O/R ou SqlMetal.exe. La propriété Where est configurée pour retourner uniquement des enregistrements qui ont une valeur dans la propriété Price supérieure à 50. Un contrôle GridView est lié au contrôle LinqDataSource pour afficher les données.
<asp:LinqDataSource
ContextTypeName="ExampleDataContext"
TableName="Products"
Where="Price > 50"
ID="LinqDataSource1"
runat="server">
</asp:LinqDataSource>
<asp:GridView
DataSourceID="LinqDataSource1"
ID="GridView1"
runat="server">
</asp:GridView>
<asp:LinqDataSource
ContextTypeName="ExampleDataContext"
TableName="Products"
Where="Price > 50"
ID="LinqDataSource1"
runat="server">
</asp:LinqDataSource>
<asp:GridView
DataSourceID="LinqDataSource1"
ID="GridView1"
runat="server">
</asp:GridView>
L'exemple suivant décrit un contrôle LinqDataSource qui permet aux utilisateurs de mettre à jour, de supprimer et d'insérer des enregistrements dans la source de données. Un contrôle DetailsView est lié au contrôle LinqDataSource et permet aux utilisateurs de visualiser et de modifier les données. Notez qu'aucune commande SQL n'est requise pour sélectionner, mettre à jour, supprimer ou insérer les enregistrements.
<asp:LinqDataSource
ContextTypeName="ExampleDataContext"
TableName="Products"
EnableUpdate="true"
EnableInsert="true"
EnableDelete="true"
ID="LinqDataSource1"
runat="server">
</asp:LinqDataSource>
<asp:DetailsView
DataKeyNames="ProductID"
AutoGenerateEditButton="true"
AutoGenerateDeleteButton="true"
AutoGenerateInsertButton="true"
AllowPaging="true"
DataSourceID="LinqDataSource1"
ID="GridView1"
runat="server">
</asp:DetailsView>
<asp:LinqDataSource
ContextTypeName="ExampleDataContext"
TableName="Products"
EnableUpdate="true"
EnableInsert="true"
EnableDelete="true"
ID="LinqDataSource1"
runat="server">
</asp:LinqDataSource>
<asp:DetailsView
DataKeyNames="ProductID"
AutoGenerateEditButton="true"
AutoGenerateDeleteButton="true"
AutoGenerateInsertButton="true"
AllowPaging="true"
DataSourceID="LinqDataSource1"
ID="GridView1"
runat="server">
</asp:DetailsView>
L'exemple suivant décrit un gestionnaire d'événements pour l'événement Selecting qui définit l'objet de données selon une valeur de la page Web.
Partial Class Default3
Inherits System.Web.UI.Page
Dim citiesArray() As String = _
{ _
"Atlanta", _
"Charlotte", _
"Denver", _
"New York", _
"San Francisco" _
}
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
End Sub
Protected Sub LinqDataSource_Selecting(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.LinqDataSourceSelectEventArgs) Handles LinqDataSource1.Selecting
Dim cities = From city In citiesArray _
Where city > "B" _
Select city
e.Result = cities
' Or we could set e.Result = citiesArray to return all rows.
End Sub
End Class
public partial class Default3 : System.Web.UI.Page
{
string[] citiesArray =
{
"Atlanta",
"Charlotte",
"Denver",
"New York",
"San Francisco"
};
protected void Page_Load(object sender, EventArgs e)
{
}
protected void LinqDataSource_Selecting(object sender, LinqDataSourceSelectEventArgs e)
{
var cities = from city in citiesArray
where city.CompareTo("B") > 0
select city;
e.Result = cities;
// Or we could set e.Result = citiesArray to return all rows.
}
}
L'exemple suivant illustre un contrôle LinqDataSource configuré pour regrouper en deux colonnes. La propriété Key fait référence à un objet qui a deux propriétés, ProductCategory et Color. L'objet représenté par It est renommé (alias) Products. L'objet Products renommé contient une collection des enregistrements individuels d'un regroupement. Chaque instance contiendra toutes les colonnes de la table Products.
<asp:LinqDataSource
ContextTypeName="ExampleDataContext"
TableName="Products"
GroupBy="new(ProductCategory, Color)"
Select="new(Key,
It As Products,
Max(ListPrice) As MaxListPrice,
Min(ListPrice) As MinListPrice)"
ID="LinqDataSource1"
runat="server">
</asp:LinqDataSource>
<asp:LinqDataSource
ContextTypeName="ExampleDataContext"
TableName="Products"
GroupBy="new(ProductCategory, Color)"
Select="new(Key,
It As Products,
Max(ListPrice) As MaxListPrice,
Min(ListPrice) As MinListPrice)"
ID="LinqDataSource1"
runat="server">
</asp:LinqDataSource>
L'exemple suivant décrit deux contrôles ListView qui affichent les données du contrôle LinqDataSource de l'exemple précédent. Un contrôle ListView affiche les données groupées et l'autre contrôle ListView affiche les noms individuels des produits qui appartiennent à ce groupe. La propriété DataSource du contrôle imbriqué lié aux données a la valeur Products, ce qui correspond à l'alias de l'objet It.
<asp:ListView
DataSourceID="LinqDataSource1"
ID="ListView1" runat="server">
<LayoutTemplate>
<table id="Table1"
style="background-color:Teal;color:White"
runat="server"
class="Layout">
<thead>
<tr>
<th><b>Product Category</b></th>
<th><b>Color</b></th>
<th><b>Highest Price</b></th>
<th><b>Lowest Price</b></th>
</tr>
</thead>
<tr runat="server" id="itemPlaceholder">
</tr>
</table>
</LayoutTemplate>
<ItemTemplate>
<tr>
<td><%# Eval("key.ProductCategory") %></td>
<td><%# Eval("key.Color") %></td>
<td><%# Eval("MaxListPrice") %></td>
<td><%# Eval("MinListPrice") %></td>
</tr>
<tr>
<td colspan="4" style="width:100%;background-color:White;color:Black">
<asp:ListView
DataSource='<%# Eval("Products") %>'
runat="server"
ID="ListView2">
<LayoutTemplate>
<div runat="server" id="itemPlaceholder" />
</LayoutTemplate>
<ItemTemplate>
<%# Eval("ProductName") %><br />
</ItemTemplate>
</asp:ListView>
</td>
</tr>
</ItemTemplate>
</asp:ListView>
<asp:ListView
DataSourceID="LinqDataSource1"
ID="ListView1" runat="server">
<LayoutTemplate>
<table id="Table1"
style="background-color:Teal;color:White"
runat="server"
class="Layout">
<thead>
<tr>
<th><b>Product Category</b></th>
<th><b>Color</b></th>
<th><b>Highest Price</b></th>
<th><b>Lowest Price</b></th>
</tr>
</thead>
<tr runat="server" id="itemPlaceholder">
</tr>
</table>
</LayoutTemplate>
<ItemTemplate>
<tr>
<td><%# Eval("key.ProductCategory") %></td>
<td><%# Eval("key.Color") %></td>
<td><%# Eval("MaxListPrice") %></td>
<td><%# Eval("MinListPrice") %></td>
</tr>
<tr>
<td colspan="4" style="width:100%;background-color:White;color:Black">
<asp:ListView
DataSource='<%# Eval("Products") %>'
runat="server"
ID="ListView2">
<LayoutTemplate>
<div runat="server" id="itemPlaceholder" />
</LayoutTemplate>
<ItemTemplate>
<%# Eval("ProductName") %><br />
</ItemTemplate>
</asp:ListView>
</td>
</tr>
</ItemTemplate>
</asp:ListView>

Informations de version
.NET FrameworkPris en charge dans : 4, 3.5

Plateformes
Windows 7, Windows Vista SP1 ou ultérieur, Windows XP SP3, Windows Server 2008 (installation minimale non prise en charge), Windows Server 2008 R2 (installation minimale prise en charge avec SP1 ou version ultérieure), Windows Server 2003 SP2
Le .NET Framework ne prend pas en charge toutes les versions de chaque plateforme. Pour obtenir la liste des versions prises en charge, consultez Configuration requise du .NET Framework.

Sécurité des threads
Tous les membres static ( Shared en Visual Basic) publics de ce type sont thread-safe. Il n'est pas garanti que les membres d'instance soient thread-safe.

Voir aussi
RéférenceAutres ressources
|