ListView.Sort(String, SortDirection) Método
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Classifica o controle ListView, dependendo da expressão e direção de classificação especificadas.
public:
virtual void Sort(System::String ^ sortExpression, System::Web::UI::WebControls::SortDirection sortDirection);
public virtual void Sort (string sortExpression, System.Web.UI.WebControls.SortDirection sortDirection);
abstract member Sort : string * System.Web.UI.WebControls.SortDirection -> unit
override this.Sort : string * System.Web.UI.WebControls.SortDirection -> unit
Public Overridable Sub Sort (sortExpression As String, sortDirection As SortDirection)
Parâmetros
- sortExpression
- String
A expressão de classificação com a qual o controle ListView será classificado.
- sortDirection
- SortDirection
Um dos valores de SortDirection.
Exceções
O controle ListView é associado a um controle de fonte de dados, mas o objeto DataSourceView associado à fonte de dados é null
.
Exemplos
O exemplo a seguir mostra como usar o Sort método para classificar programaticamente o ListView controle por vários campos de dados.
<%@ 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">
// <Snippet2>
void SortButton_Click(Object sender, EventArgs e)
{
// Create the sort expression from the values selected
// by the user from the DropDownList controls. Multiple
// columns can be sorted by creating a sort expression
// that contains a comma-separated list of field names.
String expression = SortList1.SelectedValue + " " +
DirectionList1.SelectedValue + " ," +
SortList2.SelectedValue;
// Determine the sort direction of the second column.
// The sort direction parameter applies only to the
// last column sorted.
SortDirection direction2 = SortDirection.Ascending;
if (DirectionList2.SelectedValue == "DESC")
direction2 = SortDirection.Descending;
// Use the Sort method to programmatically sort the ListView
// control using the sort expression and direction.
ContactsListView.Sort(expression, direction2);
}
// </Snippet2>
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head id="Head1" runat="server">
<title>ListView Sort Example</title>
<style type="text/css">
body { font: 10pt Trebuchet MS; }
</style>
</head>
<body>
<form id="form1" runat="server">
<h3>ListView Sort Example</h3>
<table>
<tr>
<td>Sort by:</td>
<td>
<asp:DropDownList ID="SortList1" runat="server">
<asp:ListItem>ContactID</asp:ListItem>
<asp:ListItem Selected="true">FirstName</asp:ListItem>
<asp:ListItem>LastName</asp:ListItem>
<asp:ListItem>EmailAddress</asp:ListItem>
</asp:DropDownList>
</td>
<td>Sort order:</td>
<td>
<asp:DropDownList ID="DirectionList1" runat="server">
<asp:ListItem Value="ASC" Text="Ascending" Selected="True" />
<asp:ListItem Value="DESC" Text="Descending" />
</asp:DropDownList>
</td>
</tr>
<tr>
<td>Then by:</td>
<td>
<asp:DropDownList ID="SortList2" runat="server">
<asp:ListItem>ContactID</asp:ListItem>
<asp:ListItem>FirstName</asp:ListItem>
<asp:ListItem Selected="true">LastName</asp:ListItem>
<asp:ListItem>EmailAddress</asp:ListItem>
</asp:DropDownList>
</td>
<td>Sort order:</td>
<td>
<asp:DropDownList ID="DirectionList2" runat="server">
<asp:ListItem Value="ASC" Text="Ascending" Selected="True" />
<asp:ListItem Value="DESC" Text="Descending" />
</asp:DropDownList>
</td>
</tr>
</table>
<asp:Button id="SortButton"
Text="Sort"
OnClick="SortButton_Click"
runat="server"/>
<br/><br />
<asp:ListView ID="ContactsListView"
DataSourceID="ContactsDataSource"
runat="server">
<LayoutTemplate>
<table cellpadding="2" width="640px" border="1" runat="server" id="tblContacts">
<tr runat="server">
<th runat="server">ContactID</th>
<th runat="server">FirstName</th>
<th runat="server">LastName</th>
<th runat="server">EmailAddress</th>
</tr>
<tr runat="server" id="itemPlaceholder" />
</table>
<asp:DataPager runat="server" ID="ContactsDataPager" PageSize="12">
<Fields>
<asp:NextPreviousPagerField ButtonType="Button"
ShowFirstPageButton="true"
ShowLastPageButton="true" />
</Fields>
</asp:DataPager>
</LayoutTemplate>
<ItemTemplate>
<tr runat="server">
<td>
<asp:Label ID="ContactIDLabel" runat="server" Text='<%#Eval("ContactID") %>' />
</td>
<td>
<asp:Label ID="FirstNameLabel" runat="server" Text='<%#Eval("FirstName") %>' />
</td>
<td>
<asp:Label ID="LastNameLabel" runat="server" Text='<%#Eval("LastName") %>' />
</td>
<td>
<asp:Label ID="EmailAddressLabel" runat="server" Text='<%#Eval("EmailAddress") %>' />
</td>
</tr>
</ItemTemplate>
</asp:ListView>
<!-- This example uses Microsoft SQL Server and connects -->
<!-- to the AdventureWorks sample database. Use an ASP.NET -->
<!-- expression to retrieve the connection string value -->
<!-- from the Web.config file. -->
<asp:SqlDataSource ID="ContactsDataSource" runat="server"
ConnectionString="<%$ ConnectionStrings:AdventureWorks_DataConnectionString %>"
SelectCommand="SELECT [ContactID], [FirstName], [LastName], [EmailAddress]
FROM Person.Contact">
</asp:SqlDataSource>
</form>
</body>
</html>
<%@ 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">
' <Snippet2>
Sub SortButton_Click(ByVal sender As Object, ByVal e As EventArgs)
' Create the sort expression from the values selected
' by the user from the DropDownList controls. Multiple
' columns can be sorted by creating a sort expression
' that contains a comma-separated list of field names.
Dim expression As String = SortList1.SelectedValue & " " & _
DirectionList1.SelectedValue & " ," & SortList2.SelectedValue
' Determine the sort direction of the second column.
' The sort direction parameter applies only to the
' last column sorted.
Dim direction2 As SortDirection = SortDirection.Ascending
If DirectionList2.SelectedValue = "DESC" Then
direction2 = SortDirection.Descending
End If
' Use the Sort method to programmatically sort the ListView
' control using the sort expression and direction.
ContactsListView.Sort(expression, direction2)
End Sub
' </Snippet2>
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head id="Head1" runat="server">
<title>ListView Sort Example</title>
<style type="text/css">
body { font: 10pt Trebuchet MS; }
</style>
</head>
<body>
<form id="form1" runat="server">
<h3>ListView Sort Example</h3>
<table>
<tr>
<td>Sort by:</td>
<td>
<asp:DropDownList ID="SortList1" runat="server">
<asp:ListItem>ContactID</asp:ListItem>
<asp:ListItem Selected="true">FirstName</asp:ListItem>
<asp:ListItem>LastName</asp:ListItem>
<asp:ListItem>EmailAddress</asp:ListItem>
</asp:DropDownList>
</td>
<td>Sort order:</td>
<td>
<asp:DropDownList ID="DirectionList1" runat="server">
<asp:ListItem Value="ASC" Text="Ascending" Selected="True" />
<asp:ListItem Value="DESC" Text="Descending" />
</asp:DropDownList>
</td>
</tr>
<tr>
<td>Then by:</td>
<td>
<asp:DropDownList ID="SortList2" runat="server">
<asp:ListItem>ContactID</asp:ListItem>
<asp:ListItem>FirstName</asp:ListItem>
<asp:ListItem Selected="true">LastName</asp:ListItem>
<asp:ListItem>EmailAddress</asp:ListItem>
</asp:DropDownList>
</td>
<td>Sort order:</td>
<td>
<asp:DropDownList ID="DirectionList2" runat="server">
<asp:ListItem Value="ASC" Text="Ascending" Selected="True" />
<asp:ListItem Value="DESC" Text="Descending" />
</asp:DropDownList>
</td>
</tr>
</table>
<asp:Button id="SortButton"
Text="Sort"
OnClick="SortButton_Click"
runat="server"/>
<br/><br />
<asp:ListView ID="ContactsListView"
DataSourceID="ContactsDataSource"
runat="server">
<LayoutTemplate>
<table cellpadding="2" width="640px" border="1" runat="server" id="tblContacts">
<tr runat="server">
<th runat="server">ContactID</th>
<th runat="server">FirstName</th>
<th runat="server">LastName</th>
<th runat="server">EmailAddress</th>
</tr>
<tr runat="server" id="itemPlaceholder" />
</table>
<asp:DataPager runat="server" ID="ContactsDataPager" PageSize="12">
<Fields>
<asp:NextPreviousPagerField ButtonType="Button"
ShowFirstPageButton="true"
ShowLastPageButton="true" />
</Fields>
</asp:DataPager>
</LayoutTemplate>
<ItemTemplate>
<tr runat="server">
<td>
<asp:Label ID="ContactIDLabel" runat="server" Text='<%#Eval("ContactID") %>' />
</td>
<td>
<asp:Label ID="FirstNameLabel" runat="server" Text='<%#Eval("FirstName") %>' />
</td>
<td>
<asp:Label ID="LastNameLabel" runat="server" Text='<%#Eval("LastName") %>' />
</td>
<td>
<asp:Label ID="EmailAddressLabel" runat="server" Text='<%#Eval("EmailAddress") %>' />
</td>
</tr>
</ItemTemplate>
</asp:ListView>
<!-- This example uses Microsoft SQL Server and connects -->
<!-- to the AdventureWorks sample database. Use an ASP.NET -->
<!-- expression to retrieve the connection string value -->
<!-- from the Web.config file. -->
<asp:SqlDataSource ID="ContactsDataSource" runat="server"
ConnectionString="<%$ ConnectionStrings:AdventureWorks_DataConnectionString %>"
SelectCommand="SELECT [ContactID], [FirstName], [LastName], [EmailAddress]
FROM Person.Contact">
</asp:SqlDataSource>
</form>
</body>
</html>
Comentários
Use o Sort método para classificar programaticamente os dados exibidos no ListView controle usando a expressão de classificação e a direção especificadas. A expressão de classificação especifica a coluna ou colunas com as quais classificar. Para classificar várias colunas, crie uma expressão de classificação que contenha uma lista separada por vírgulas de nomes de campo. A direção de classificação indica se a classificação é executada em ordem crescente ou decrescente.
Normalmente, você usa esse método quando deseja classificar o conteúdo do ListView controle de fora do controle, como de um controle diferente na página. Esse método também é usado para definir programaticamente uma ordem de classificação padrão para o ListView controle quando ele é renderizado pela primeira vez.
Esse método gera os Sorted eventos e Sorting .