From b1dc5b4712f6630f48f2ac5e904dfd60a551e1f6 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Marie=20P=C3=ADchov=C3=A1?=
<11718369+ManickaP@users.noreply.github.com>
Date: Wed, 22 Jan 2025 10:28:36 +0100
Subject: [PATCH 1/4] [QUIC] Options classes fixes (#10828)
* Listener options fixes
* Windows sizes power of 2 constraint
* Small fixes
* Removed non-existing namespace
* Added links to conceptual docs
* RFC link
* callback details in summary
* Links to conceptual docs for options classes
* Update xml/System.Net.Quic/QuicClientConnectionOptions.xml
Co-authored-by: Genevieve Warren <24882762+gewarren@users.noreply.github.com>
* Update xml/System.Net.Quic/QuicConnection.xml
Co-authored-by: Genevieve Warren <24882762+gewarren@users.noreply.github.com>
* Update xml/System.Net.Quic/QuicConnectionOptions.xml
Co-authored-by: Genevieve Warren <24882762+gewarren@users.noreply.github.com>
* Apply suggestions from code review
Co-authored-by: Genevieve Warren <24882762+gewarren@users.noreply.github.com>
---------
Co-authored-by: Genevieve Warren <24882762+gewarren@users.noreply.github.com>
---
xml/System.Net.Quic/QuicClientConnectionOptions.xml | 1 +
xml/System.Net.Quic/QuicConnection.xml | 1 +
xml/System.Net.Quic/QuicConnectionOptions.xml | 12 +++++++-----
xml/System.Net.Quic/QuicListener.xml | 8 +++++---
xml/System.Net.Quic/QuicListenerOptions.xml | 13 +++++++------
xml/System.Net.Quic/QuicReceiveWindowSizes.xml | 8 ++++----
xml/System.Net.Quic/QuicServerConnectionOptions.xml | 1 +
xml/System.Net.Quic/QuicStream.xml | 1 +
xml/ns-System.Net.Quic.Implementations.xml | 6 ------
xml/ns-System.Net.Quic.xml | 3 ++-
10 files changed, 29 insertions(+), 25 deletions(-)
delete mode 100644 xml/ns-System.Net.Quic.Implementations.xml
diff --git a/xml/System.Net.Quic/QuicClientConnectionOptions.xml b/xml/System.Net.Quic/QuicClientConnectionOptions.xml
index ffbf9460b84..291ea2d4f4d 100644
--- a/xml/System.Net.Quic/QuicClientConnectionOptions.xml
+++ b/xml/System.Net.Quic/QuicClientConnectionOptions.xml
@@ -24,6 +24,7 @@
Options for client (outbound) Quic connections.
To be added.
+ Detailed documentation for QuicClientConnectionOptions
diff --git a/xml/System.Net.Quic/QuicConnection.xml b/xml/System.Net.Quic/QuicConnection.xml
index 62319c6c1c1..fdac2187660 100644
--- a/xml/System.Net.Quic/QuicConnection.xml
+++ b/xml/System.Net.Quic/QuicConnection.xml
@@ -41,6 +41,7 @@ For QUIC prerequisites and supported operating systems, see [Platform dependenci
]]>
RFC 9000: Connections
+ Guidelines for using QuicConnection
diff --git a/xml/System.Net.Quic/QuicConnectionOptions.xml b/xml/System.Net.Quic/QuicConnectionOptions.xml
index c798b59e21c..d584bcd7613 100644
--- a/xml/System.Net.Quic/QuicConnectionOptions.xml
+++ b/xml/System.Net.Quic/QuicConnectionOptions.xml
@@ -24,6 +24,7 @@
Shared options for both client (outbound) and server (inbound) Quic connections.
To be added.
+ Detailed documentation for QuicConnectionOptions
@@ -164,8 +165,8 @@ To use a different close error code, call System.TimeSpan
- Gets or sets the interval at which keep-alive packets are sent on the connection.
- The interval at which keep-alive packets are sent on the connection. The default value is , which means keep-alive packets are never sent.
+ Gets or sets the interval at which PING frames are sent on the connection.
+ The interval at which PING frames are sent on the connection. The default value is , which means PING frames are never sent.
A value of means use the underlying implementation default timeout.
@@ -239,11 +240,12 @@ To use a different close error code, call
Optional callback that is invoked when new stream limit is released by the peer. Corresponds to receiving a MAX_STREAMS frame.
- The callback values represent increments of stream limits, e.g.: current limit is 10 bidirectional streams, callback arguments notify 5 more additional bidirectional streams => 15 bidirectional streams can be opened in total at the moment.
- The initial capacity is reported with the first invocation of the callback that might happen before the instance is handed out via either or .
To be added.
- To be added.
+
+ The callback values represent increments of stream limits. For example, if the current limit is 10 bidirectional streams, and callback arguments notify 5 more additional bidirectional streams, then 15 bidirectional streams can be opened in total at the moment.
+ The initial capacity is reported with the first invocation of the callback, which might happen before the instance is handed out via either or .
+
diff --git a/xml/System.Net.Quic/QuicListener.xml b/xml/System.Net.Quic/QuicListener.xml
index 34a5a94c001..50d6a520fcf 100644
--- a/xml/System.Net.Quic/QuicListener.xml
+++ b/xml/System.Net.Quic/QuicListener.xml
@@ -39,6 +39,7 @@ For QUIC prerequisites and supported operating systems, see [Platform dependenci
]]>
RFC 9000: Connections
+ Guidelines for using QuicListener
@@ -69,9 +70,10 @@ For QUIC prerequisites and supported operating systems, see [Platform dependenci
## Remarks
- doesn't have a mechanism to report inbound connections that fail the handshake process. Such connections are only logged by the listener and never surfaced on the outside.
-
-This method propagates exceptions from , including validation errors from misconfigured , for example, . It also propagates exceptions from failed connection handshakes, for example, and .
+This method also propagates exceptions from the process of establishing a connection, including:
+- Errors from as with error type.
+- Validation errors from misconfigured returned by as .
+- Exceptions from failed connection handshakes as or .
]]>
diff --git a/xml/System.Net.Quic/QuicListenerOptions.xml b/xml/System.Net.Quic/QuicListenerOptions.xml
index 6d787b65425..213048a832b 100644
--- a/xml/System.Net.Quic/QuicListenerOptions.xml
+++ b/xml/System.Net.Quic/QuicListenerOptions.xml
@@ -22,8 +22,9 @@
- Options to provide to a .
+ Options to configure a new .
To be added.
+ Detailed documentation for QuicListenerOptions
@@ -65,7 +66,7 @@
Gets or sets the list of application protocols that the listener will accept. At least one must be specified.
To be added.
- This property is mandatory, and not setting it will result in validation errors when starting the listener.
+ This property is mandatory. Not setting it or not specifying at least one value will result in validation errors when starting the listener.
@@ -92,9 +93,9 @@
System.Func<System.Net.Quic.QuicConnection,System.Net.Security.SslClientHelloInfo,System.Threading.CancellationToken,System.Threading.Tasks.ValueTask<System.Net.Quic.QuicServerConnectionOptions>>
- Gets or sets the selection callback to choose inbound connection options dynamically.
+ Gets or sets the selection callback to choose inbound connection options.
To be added.
- To be added.
+ This property is mandatory. Not setting it will result in validation errors when starting the listener.
@@ -115,7 +116,7 @@
System.Int32
- Gets or sets the number of connections to be held without accepting any of them, that is, the maximum size of the pending connection queue.
+ Gets or sets the number of connections to be held without accepting any of them. That is, the maximum size of the pending connection queue.
To be added.
To be added.
@@ -140,7 +141,7 @@
Gets or sets the endpoint to listen on.
To be added.
- This property is mandatory, and not setting it will result in validation errors when starting the listener.
+ This property is mandatory. Not setting it will result in validation errors when starting the listener.
diff --git a/xml/System.Net.Quic/QuicReceiveWindowSizes.xml b/xml/System.Net.Quic/QuicReceiveWindowSizes.xml
index daf3a885273..52413125838 100644
--- a/xml/System.Net.Quic/QuicReceiveWindowSizes.xml
+++ b/xml/System.Net.Quic/QuicReceiveWindowSizes.xml
@@ -53,7 +53,7 @@
Gets or sets the initial flow-control window size for the connection.
To be added.
- To be added.
+ Must be non-negative power of 2.
@@ -74,7 +74,7 @@
Gets or sets the initial flow-control window size for locally initiated bidirectional streams.
To be added.
- To be added.
+ Must be non-negative power of 2.
@@ -95,7 +95,7 @@
Gets or sets the initial flow-control window size for remotely initiated bidirectional streams.
To be added.
- To be added.
+ Must be non-negative power of 2.
@@ -116,7 +116,7 @@
Gets or sets the initial flow-control window size for (remotely initiated) unidirectional streams.
To be added.
- To be added.
+ Must be non-negative power of 2.
diff --git a/xml/System.Net.Quic/QuicServerConnectionOptions.xml b/xml/System.Net.Quic/QuicServerConnectionOptions.xml
index 487fef054df..d72df564def 100644
--- a/xml/System.Net.Quic/QuicServerConnectionOptions.xml
+++ b/xml/System.Net.Quic/QuicServerConnectionOptions.xml
@@ -24,6 +24,7 @@
Options for server (inbound) Quic connections. These options are provided by .
To be added.
+ Detailed documentation for QuicServerConnectionOptions
diff --git a/xml/System.Net.Quic/QuicStream.xml b/xml/System.Net.Quic/QuicStream.xml
index 49a47857460..efaa94798e3 100644
--- a/xml/System.Net.Quic/QuicStream.xml
+++ b/xml/System.Net.Quic/QuicStream.xml
@@ -30,6 +30,7 @@ Apart from a stream API, also expose
- Closes the writing side of the stream as a single operation with the write itself.
- Closes the writing side of the stream.
- Aborts either the writing or the reading side of the stream.
- Returns a that will complete when the stream writing side has been closed (gracefully or abortively).
- Returns a that will complete when the stream reading side has been closed (gracefully or abortively).
RFC 9000: Streams
+ Guidelines for using QuicStream
diff --git a/xml/ns-System.Net.Quic.Implementations.xml b/xml/ns-System.Net.Quic.Implementations.xml
deleted file mode 100644
index e1a217559e7..00000000000
--- a/xml/ns-System.Net.Quic.Implementations.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
- To be added.
- To be added.
-
-
diff --git a/xml/ns-System.Net.Quic.xml b/xml/ns-System.Net.Quic.xml
index 2dc840c230f..7abb48641fe 100644
--- a/xml/ns-System.Net.Quic.xml
+++ b/xml/ns-System.Net.Quic.xml
@@ -1,6 +1,7 @@
- Contains types that implement the QUIC protocol specified by RFC 9000.
+ Contains types that implement the QUIC protocol specified by RFC 9000.
To be added.
+ QUIC in .NET
From 82612829bba675fb4c7e949492d9a111f1e79b05 Mon Sep 17 00:00:00 2001
From: Genevieve Warren <24882762+gewarren@users.noreply.github.com>
Date: Wed, 22 Jan 2025 06:42:41 -0800
Subject: [PATCH 2/4] code fence command names (#10854)
---
xml/System.Web.UI.WebControls/GridView.xml | 4622 ++++++++++----------
1 file changed, 2310 insertions(+), 2312 deletions(-)
diff --git a/xml/System.Web.UI.WebControls/GridView.xml b/xml/System.Web.UI.WebControls/GridView.xml
index e00556e0c99..47b2bd1c825 100644
--- a/xml/System.Web.UI.WebControls/GridView.xml
+++ b/xml/System.Web.UI.WebControls/GridView.xml
@@ -76,510 +76,510 @@
Displays the values of a data source in a table where each column represents a field and each row represents a record. The control enables you to select, sort, and edit these items.
-
-## Introduction
- The control is used to display the values of a data source in a table. Each column represents a field, while each row represents a record. The control supports the following features:
-
-- Binding to data source controls, such as .
-
-- Built-in sort capabilities.
-
-- Built-in update and delete capabilities.
-
-- Built-in paging capabilities.
-
-- Built-in row selection capabilities.
-
-- Programmatic access to the object model to dynamically set properties, handle events, and so on.
-
-- Multiple key fields.
-
-- Multiple data fields for the hyperlink columns.
-
-- Customizable appearance through themes and styles.
-
-- To learn about the other data-bound controls that are available in ASP.NET, see [Data-Bound Web Server Controls](https://learn.microsoft.com/previous-versions/aspnet/ms228214(v=vs.100)).
-
+
+## Introduction
+ The control is used to display the values of a data source in a table. Each column represents a field, while each row represents a record. The control supports the following features:
+
+- Binding to data source controls, such as .
+
+- Built-in sort capabilities.
+
+- Built-in update and delete capabilities.
+
+- Built-in paging capabilities.
+
+- Built-in row selection capabilities.
+
+- Programmatic access to the object model to dynamically set properties, handle events, and so on.
+
+- Multiple key fields.
+
+- Multiple data fields for the hyperlink columns.
+
+- Customizable appearance through themes and styles.
+
+- To learn about the other data-bound controls that are available in ASP.NET, see [Data-Bound Web Server Controls](https://learn.microsoft.com/previous-versions/aspnet/ms228214(v=vs.100)).
+
> [!NOTE]
-> If you are familiar with the control from the .NET Framework version 1.0, the control is the successor to the control.
-
-
-## Column Fields
- Each column in the control is represented by a object. By default, the property is set to `true`, which creates an object for each field in the data source. Each field is then rendered as a column in the control in the order that each field appears in the data source.
-
- You can also manually control which column fields appear in the control by setting the property to `false` and then defining your own column field collection. Different column field types determine the behavior of the columns in the control. The following table lists the different column field types that can be used.
-
-|Column field type|Description|
-|-----------------------|-----------------|
-||Displays the value of a field in a data source. This is the default column type of the control.|
-||Displays a command button for each item in the control. This enables you to create a column of custom button controls, such as the Add or the Remove button.|
-||Displays a check box for each item in the control. This column field type is commonly used to display fields with a Boolean value.|
-||Displays predefined command buttons to perform select, edit, or delete operations.|
-||Displays the value of a field in a data source as a hyperlink. This column field type enables you to bind a second field to the hyperlink's URL.|
-||Displays an image for each item in the control.|
-||Displays user-defined content for each item in the control according to a specified template. This column field type enables you to create a custom column field.|
-
- To define a column field collection declaratively, first add opening and closing `` tags between the opening and closing tags of the control. Next, list the column fields that you want to include between the opening and closing `` tags. The columns specified are added to the collection in the order listed. The collection stores all the column fields in the control and enables you to programmatically manage the column fields in the control.
-
- Explicitly declared column fields can be displayed in combination with automatically generated column fields. When both are used, explicitly declared column fields are rendered first, followed by the automatically generated column fields.
-
+> If you are familiar with the control from the .NET Framework version 1.0, the control is the successor to the control.
+
+
+## Column Fields
+ Each column in the control is represented by a object. By default, the property is set to `true`, which creates an object for each field in the data source. Each field is then rendered as a column in the control in the order that each field appears in the data source.
+
+ You can also manually control which column fields appear in the control by setting the property to `false` and then defining your own column field collection. Different column field types determine the behavior of the columns in the control. The following table lists the different column field types that can be used.
+
+|Column field type|Description|
+|-----------------------|-----------------|
+||Displays the value of a field in a data source. This is the default column type of the control.|
+||Displays a command button for each item in the control. This enables you to create a column of custom button controls, such as the Add or the Remove button.|
+||Displays a check box for each item in the control. This column field type is commonly used to display fields with a Boolean value.|
+||Displays predefined command buttons to perform select, edit, or delete operations.|
+||Displays the value of a field in a data source as a hyperlink. This column field type enables you to bind a second field to the hyperlink's URL.|
+||Displays an image for each item in the control.|
+||Displays user-defined content for each item in the control according to a specified template. This column field type enables you to create a custom column field.|
+
+ To define a column field collection declaratively, first add opening and closing `` tags between the opening and closing tags of the control. Next, list the column fields that you want to include between the opening and closing `` tags. The columns specified are added to the collection in the order listed. The collection stores all the column fields in the control and enables you to programmatically manage the column fields in the control.
+
+ Explicitly declared column fields can be displayed in combination with automatically generated column fields. When both are used, explicitly declared column fields are rendered first, followed by the automatically generated column fields.
+
> [!NOTE]
-> Automatically generated column fields are not added to the collection.
-
-
-## Binding to Data
- The control can be bound to a data source control (such as the control or control) or to any data source collection that implements the interface, such as , , , or other collection types. Use one of the following methods to bind the control to the appropriate data source type:
-
-- To bind to a data source control, set the property of the control to the value of the data source control. The control automatically binds to the specified data source control and can take advantage of the data source control's capabilities to perform sorting, updating, deleting, and paging. This is the preferred method to bind to data.
-
-- To bind to a data source that implements the interface, programmatically set the property of the control to the data source and then call the method. When using this method, the control does not provide built-in sort, update, delete, and paging functionality. You need to provide this functionality by using the appropriate event.
-
- For more information about data binding, see [ASP.NET Data Access Content Map](https://learn.microsoft.com/previous-versions/aspnet/6759sth4(v=vs.100)).
-
+> Automatically generated column fields are not added to the collection.
+
+
+## Binding to Data
+ The control can be bound to a data source control (such as the control or control) or to any data source collection that implements the interface, such as , , , or other collection types. Use one of the following methods to bind the control to the appropriate data source type:
+
+- To bind to a data source control, set the property of the control to the value of the data source control. The control automatically binds to the specified data source control and can take advantage of the data source control's capabilities to perform sorting, updating, deleting, and paging. This is the preferred method to bind to data.
+
+- To bind to a data source that implements the interface, programmatically set the property of the control to the data source and then call the method. When using this method, the control does not provide built-in sort, update, delete, and paging functionality. You need to provide this functionality by using the appropriate event.
+
+ For more information about data binding, see [ASP.NET Data Access Content Map](https://learn.microsoft.com/previous-versions/aspnet/6759sth4(v=vs.100)).
+
> [!NOTE]
-> This control can be used to display user input, which might include malicious client script. Check any information that is sent from a client for executable script, SQL statements, or other code before displaying it in your application. Whenever possible, it is strongly recommended that values are HTML-encoded before they are displayed in this control (the class HTML-encodes values by default). ASP.NET provides an input request validation feature to block script and HTML in user input. Validation server controls are also provided to assess user input. For more information, see [Introduction to the Validation Controls](https://learn.microsoft.com/previous-versions/dotnet/netframework-3.0/2e4hd649(v=vs.85)).
-
-
-## Data Operations
- The control provides many built-in capabilities that allow the user to sort, update, delete, select, and page through items in the control. When the control is bound to a data source control, the control can take advantage of the data source control's capabilities and provide automatic sort, update, and delete functionality.
-
+> This control can be used to display user input, which might include malicious client script. Check any information that is sent from a client for executable script, SQL statements, or other code before displaying it in your application. Whenever possible, it is strongly recommended that values are HTML-encoded before they are displayed in this control (the class HTML-encodes values by default). ASP.NET provides an input request validation feature to block script and HTML in user input. Validation server controls are also provided to assess user input. For more information, see [Introduction to the Validation Controls](https://learn.microsoft.com/previous-versions/dotnet/netframework-3.0/2e4hd649(v=vs.85)).
+
+
+## Data Operations
+ The control provides many built-in capabilities that allow the user to sort, update, delete, select, and page through items in the control. When the control is bound to a data source control, the control can take advantage of the data source control's capabilities and provide automatic sort, update, and delete functionality.
+
> [!NOTE]
-> The control can provide support for sorting, updating, and deleting with other types of data sources. However, you will need to provide an appropriate event handler with the implementation for these operations.
-
- Sorting allows the user to sort the items in the control with respect to a specific column by clicking on the column's header. To enable sorting, set the property to `true`.
-
- The automatic updating, deleting, and selection functionalities are enabled when a button in a or column field, with a command name of "Edit", "Delete", and "Select", respectively, is clicked. The control can automatically add a column field with an Edit, Delete, or Select button if the , , or property is set to `true`, respectively.
-
+> The control can provide support for sorting, updating, and deleting with other types of data sources. However, you will need to provide an appropriate event handler with the implementation for these operations.
+
+ Sorting allows the user to sort the items in the control with respect to a specific column by clicking on the column's header. To enable sorting, set the property to `true`.
+
+ The automatic updating, deleting, and selection functionalities are enabled when a button in a or column field, with a command name of "Edit", "Delete", and "Select", respectively, is clicked. The control can automatically add a column field with an Edit, Delete, or Select button if the , , or property is set to `true`, respectively.
+
> [!NOTE]
-> Inserting records into the data source is not directly supported by the control. However, it is possible to insert records by using the control in conjunction with the `DetailsView` or `FormView` control. For more information, see or , respectively.
-
- Instead of displaying all the records in the data source at the same time, the control can automatically break the records up into pages. To enable paging, set the property to `true`.
-
+> Inserting records into the data source is not directly supported by the control. However, it is possible to insert records by using the control in conjunction with the `DetailsView` or `FormView` control. For more information, see or , respectively.
+
+ Instead of displaying all the records in the data source at the same time, the control can automatically break the records up into pages. To enable paging, set the property to `true`.
+
> [!NOTE]
-> The control is re-created on postback based on the information that is stored in . If the control includes a or a with the property set to `true`, then the property must also be set to `true` to ensure that concurrent data operations, such as updates and deletes, apply to the appropriate row.
-
-
-## Customizing the User Interface
- You can customize the appearance of the control by setting the style properties for the different parts of the control. The following table lists the different style properties.
-
-|Style property|Description|
-|--------------------|-----------------|
-||The style settings for the alternating data rows in the control. When this property is set, the data rows are displayed alternating between the settings and the settings.|
-||The style settings for the row being edited in the control.|
-||The style settings for the empty data row displayed in the control when the data source does not contain any records.|
-||The style settings for the footer row of the control.|
-||The style settings for the header row of the control.|
-||The style settings for the pager row of the control.|
-||The style settings for the data rows in the control. When the property is also set, the data rows are displayed alternating between the settings and the settings.|
-||The style settings for the selected row in the control.|
-||The style setting for the data column the data is sorted by in the control. When this style is set, the style (for example, highlighted column) is applied to cells when the data is sorted in ascending order.|
-||The style setting for the data column the data is sorted by in the control. When this style is set, an arrow indicating the data is sorted ascending is placed on the header of the control when the data is sorted in ascending order.|
-||The style setting for the data column the data is sorted by in the control. When this style is set, the style (for example, highlighted column) is applied to cells when the data is sorted in descending order.|
-||The style setting for the data column the data is sorted by in the control. When this style is set, an arrow pointing down is placed on the header of the when the data is sorted in descending order.|
-
- You can also show or hide different parts of the control. The following table lists the properties that control which parts are shown or hidden.
-
-|Property|Description|
-|--------------|-----------------|
-||Shows or hides the footer section of the control.|
-||Shows or hides the header section of the control.|
-
-
-## Events
- The control provides several events that you can program against. This enables you to run a custom routine whenever an event occurs. The following table lists the events that are supported by the control.
-
-|Event|Description|
-|-----------|-----------------|
-||Occurs when one of the pager buttons is clicked, but after the control handles the paging operation. This event is commonly used when you need to perform a task after the user navigates to a different page in the control.|
-||Occurs when one of the pager buttons is clicked, but before the control handles the paging operation. This event is often used to cancel the paging operation.|
-||Occurs when a row's Cancel button is clicked, but before the control exits edit mode. This event is often used to stop the canceling operation.|
-||Occurs when a button is clicked in the control. This event is often used to perform a task when a button is clicked in the control.|
-||Occurs when a new row is created in the control. This event is often used to modify the contents of a row when the row is created.|
-||Occurs when a data row is bound to data in the control. This event is often used to modify the contents of a row when the row is bound to data.|
-||Occurs when a row's Delete button is clicked, but after the control deletes the record from the data source. This event is often used to check the results of the delete operation.|
-||Occurs when a row's Delete button is clicked, but before the control deletes the record from the data source. This event is often used to cancel the deleting operation.|
-||Occurs when a row's Edit button is clicked, but before the control enters edit mode. This event is often used to cancel the editing operation.|
-||Occurs when a row's Update button is clicked, but after the control updates the row. This event is often used to check the results of the update operation.|
-||Occurs when a row's Update button is clicked, but before the control updates the row. This event is often used to cancel the updating operation.|
-||Occurs when a row's Select button is clicked, but after the control handles the select operation. This event is often used to perform a task after a row is selected in the control.|
-||Occurs when a row's Select button is clicked, but before the control handles the select operation. This event is often used to cancel the selection operation.|
-||Occurs when the hyperlink to sort a column is clicked, but after the control handles the sort operation. This event is commonly used to perform a task after the user clicks a hyperlink to sort a column.|
-||Occurs when the hyperlink to sort a column is clicked, but before the control handles the sort operation. This event is often used to cancel the sorting operation or to perform a custom sorting routine.|
-
-
-## Accessibility
- For information about how to configure this control so that it generates markup that conforms to accessibility standards, see [Accessibility in Visual Studio and ASP.NET](https://learn.microsoft.com/previous-versions/ms228004(v=vs.140)) and [ASP.NET Controls and Accessibility](https://learn.microsoft.com/previous-versions/ms227996(v=vs.140)).
-
-
-## Declarative Syntax
-
-```
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-```
-
-
-
-## Examples
- A Visual Studio Web site project with source code is available to accompany this topic: [Download](https://go.microsoft.com/fwlink/?LinkId=191882).
-
- The following example demonstrates how use the control to display the values from the Customers table of the AdventureWorksLT sample database in Microsoft SQL Server. The values are retrieved using a control.
-
+> The control is re-created on postback based on the information that is stored in . If the control includes a or a with the property set to `true`, then the property must also be set to `true` to ensure that concurrent data operations, such as updates and deletes, apply to the appropriate row.
+
+
+## Customizing the User Interface
+ You can customize the appearance of the control by setting the style properties for the different parts of the control. The following table lists the different style properties.
+
+|Style property|Description|
+|--------------------|-----------------|
+||The style settings for the alternating data rows in the control. When this property is set, the data rows are displayed alternating between the settings and the settings.|
+||The style settings for the row being edited in the control.|
+||The style settings for the empty data row displayed in the control when the data source does not contain any records.|
+||The style settings for the footer row of the control.|
+||The style settings for the header row of the control.|
+||The style settings for the pager row of the control.|
+||The style settings for the data rows in the control. When the property is also set, the data rows are displayed alternating between the settings and the settings.|
+|