GridView.AllowSorting Egenskap
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
Hämtar eller anger ett värde som anger om sorteringsfunktionen är aktiverad.
public:
virtual property bool AllowSorting { bool get(); void set(bool value); };
public virtual bool AllowSorting { get; set; }
member this.AllowSorting : bool with get, set
Public Overridable Property AllowSorting As Boolean
Egenskapsvärde
trueom sorteringsfunktionen är aktiverad; annars . false Standardvärdet är false.
Exempel
I följande exempel visas hur du använder AllowSorting egenskapen för att aktivera sortering i en GridView kontroll när automatiskt genererade kolumner används.
<%@ Page language="C#" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>GridView AllowSorting Example</title>
</head>
<body>
<form id="form1" runat="server">
<h3>GridView AllowSorting Example</h3>
<asp:gridview id="CustomersGridView"
datasourceid="CustomersSource"
autogeneratecolumns="true"
emptydatatext="No data available."
allowsorting="true"
runat="server">
</asp:gridview>
<!-- This example uses Microsoft SQL Server and connects -->
<!-- to the Northwind sample database. Use an ASP.NET -->
<!-- expression to retrieve the connection string value -->
<!-- from the Web.config file. -->
<asp:sqldatasource id="CustomersSource"
selectcommand="Select [CustomerID], [CompanyName], [Address], [City], [PostalCode], [Country] From [Customers]"
connectionstring="<%$ ConnectionStrings:NorthWindConnectionString%>"
runat="server"/>
</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">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>GridView AllowSorting Example</title>
</head>
<body>
<form id="form1" runat="server">
<h3>GridView AllowSorting Example</h3>
<asp:gridview id="CustomersGridView"
datasourceid="CustomersSource"
autogeneratecolumns="true"
emptydatatext="No data available."
allowsorting="true"
runat="server">
</asp:gridview>
<!-- This example uses Microsoft SQL Server and connects -->
<!-- to the Northwind sample database. Use an ASP.NET -->
<!-- expression to retrieve the connection string value -->
<!-- from the Web.config file. -->
<asp:sqldatasource id="CustomersSource"
selectcommand="Select [CustomerID], [CompanyName], [Address], [City], [PostalCode], [Country] From [Customers]"
connectionstring="<%$ ConnectionStrings:NorthWindConnectionString%>"
runat="server"/>
</form>
</body>
</html>
I följande exempel visas hur du använder AllowSorting egenskapen för att aktivera sortering i en GridView kontroll när en Columns samling definieras. En bild läggs också programmatiskt till i rubriken för kolumnen som sorteras för att indikera sorteringsriktningen. Du måste ange egna avbildningar för att det här exemplet ska fungera.
<%@ 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">
void CustomersGridView_RowCreated(Object sender, GridViewRowEventArgs e)
{
// Use the RowType property to determine whether the
// row being created is the header row.
if (e.Row.RowType == DataControlRowType.Header)
{
// Call the GetSortColumnIndex helper method to determine
// the index of the column being sorted.
int sortColumnIndex = GetSortColumnIndex();
if (sortColumnIndex != -1)
{
// Call the AddSortImage helper method to add
// a sort direction image to the appropriate
// column header.
AddSortImage(sortColumnIndex, e.Row);
}
}
}
// This is a helper method used to determine the index of the
// column being sorted. If no column is being sorted, -1 is returned.
int GetSortColumnIndex()
{
// Iterate through the Columns collection to determine the index
// of the column being sorted.
foreach (DataControlField field in CustomersGridView.Columns)
{
if (field.SortExpression == CustomersGridView.SortExpression)
{
return CustomersGridView.Columns.IndexOf(field);
}
}
return -1;
}
// This is a helper method used to add a sort direction
// image to the header of the column being sorted.
void AddSortImage(int columnIndex, GridViewRow headerRow)
{
// Create the sorting image based on the sort direction.
Image sortImage = new Image();
if (CustomersGridView.SortDirection == SortDirection.Ascending)
{
sortImage.ImageUrl = "~/Images/Ascending.jpg";
sortImage.AlternateText = "Ascending Order";
}
else
{
sortImage.ImageUrl = "~/Images/Descending.jpg";
sortImage.AlternateText = "Descending Order";
}
// Add the image to the appropriate header cell.
headerRow.Cells[columnIndex].Controls.Add(sortImage);
}
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>GridView AllowSorting Example</title>
</head>
<body>
<form id="form1" runat="server">
<h3>GridView AllowSorting Example</h3>
<asp:gridview id="CustomersGridView"
datasourceid="CustomersSource"
autogeneratecolumns="false"
emptydatatext="No data available."
allowsorting="true"
onrowcreated="CustomersGridView_RowCreated"
runat="server">
<columns>
<asp:boundfield datafield="CustomerID"
headertext="Customer ID"
headerstyle-wrap="false"
sortexpression="CustomerID"/>
<asp:boundfield datafield="CompanyName"
headertext="CompanyName"
headerstyle-wrap="false"
sortexpression="CompanyName"/>
<asp:boundfield datafield="Address"
headertext="Address"
headerstyle-wrap="false"
sortexpression="Address"/>
<asp:boundfield datafield="City"
headertext="City"
headerstyle-wrap="false"
sortexpression="City"/>
<asp:boundfield datafield="PostalCode"
headertext="Postal Code"
headerstyle-wrap="false"
sortexpression="PostalCode" />
<asp:boundfield datafield="Country"
headertext="Country"
headerstyle-wrap="false"
sortexpression="Country"/>
</columns>
</asp:gridview>
<!-- This example uses Microsoft SQL Server and connects -->
<!-- to the Northwind sample database. Use an ASP.NET -->
<!-- expression to retrieve the connection string value -->
<!-- from the Web.config file. -->
<asp:sqldatasource id="CustomersSource"
selectcommand="Select [CustomerID], [CompanyName], [Address], [City], [PostalCode], [Country] From [Customers]"
connectionstring="<%$ ConnectionStrings:NorthWindConnectionString%>"
runat="server"/>
</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">
Sub CustomersGridView_RowCreated(ByVal sender As Object, ByVal e As GridViewRowEventArgs)
' Use the RowType property to determine whether the
' row being created is the header row.
If e.Row.RowType = DataControlRowType.Header Then
' Call the GetSortColumnIndex helper method to determine
' the index of the column being sorted.
Dim sortColumnIndex As Integer = GetSortColumnIndex()
If sortColumnIndex <> -1 Then
' Call the AddSortImage helper method to add
' a sort direction image to the appropriate
' column header.
AddSortImage(sortColumnIndex, e.Row)
End If
End If
End Sub
' This is a helper method used to determine the index of the
' column being sorted. If no column is being sorted, -1 is returned.
Function GetSortColumnIndex() As Integer
' Iterate through the Columns collection to determine the index
' of the column being sorted.
Dim field As DataControlField
For Each field In CustomersGridView.Columns
If field.SortExpression = CustomersGridView.SortExpression Then
Return CustomersGridView.Columns.IndexOf(field)
End If
Next
Return -1
End Function
' This is a helper method used to add a sort direction
' image to the header of the column being sorted.
Sub AddSortImage(ByVal columnIndex As Integer, ByVal row As GridViewRow)
' Create the sorting image based on the sort direction.
Dim sortImage As New Image()
If CustomersGridView.SortDirection = SortDirection.Ascending Then
sortImage.ImageUrl = "~/Images/Ascending.jpg"
sortImage.AlternateText = "Ascending Order"
Else
sortImage.ImageUrl = "~/Images/Descending.jpg"
sortImage.AlternateText = "Descending Order"
End If
' Add the image to the appropriate header cell.
row.Cells(columnIndex).Controls.Add(sortImage)
End Sub
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>GridView AllowSorting Example</title>
</head>
<body>
<form id="form1" runat="server">
<h3>GridView AllowSorting Example</h3>
<asp:gridview id="CustomersGridView"
datasourceid="CustomersSource"
autogeneratecolumns="false"
emptydatatext="No data available."
allowsorting="true"
onrowcreated="CustomersGridView_RowCreated"
runat="server">
<columns>
<asp:boundfield datafield="CustomerID"
headertext="Customer ID"
headerstyle-wrap="false"
sortexpression="CustomerID"/>
<asp:boundfield datafield="CompanyName"
headertext="CompanyName"
headerstyle-wrap="false"
sortexpression="CompanyName"/>
<asp:boundfield datafield="Address"
headertext="Address"
headerstyle-wrap="false"
sortexpression="Address"/>
<asp:boundfield datafield="City"
headertext="City"
headerstyle-wrap="false"
sortexpression="City"/>
<asp:boundfield datafield="PostalCode"
headertext="Postal Code"
headerstyle-wrap="false"
sortexpression="PostalCode" />
<asp:boundfield datafield="Country"
headertext="Country"
headerstyle-wrap="false"
sortexpression="Country"/>
</columns>
</asp:gridview>
<!-- This example uses Microsoft SQL Server and connects -->
<!-- to the Northwind sample database. Use an ASP.NET -->
<!-- expression to retrieve the connection string value -->
<!-- from the Web.config file. -->
<asp:sqldatasource id="CustomersSource"
selectcommand="Select [CustomerID], [CompanyName], [Address], [City], [PostalCode], [Country] From [Customers]"
connectionstring="<%$ ConnectionStrings:NorthWindConnectionString%>"
runat="server"/>
</form>
</body>
</html>
Kommentarer
När en datakällakontroll som stöder sortering är bunden till GridView kontrollen GridView kan kontrollen dra nytta av datakällans funktioner och tillhandahålla funktioner för automatisk sortering. GridView När kontrollen är bunden till en datakälla genom att ställa in DataSource egenskapen programmatiskt måste du ange sorteringsfunktionen med hjälp Sorting av händelsen.
Note
Olika datakällor har olika krav för att aktivera sina sorteringsfunktioner. Information om hur du fastställer kraven finns i dokumentationen för den specifika datakällan.
Om du vill aktivera sortering anger du AllowSorting egenskapen till true. När sortering är aktiverat visas rubriktexten för varje kolumnfält med dess SortExpression egenskapsuppsättning som en länkknapp.
Note
Egenskapen SortExpression för ett automatiskt genererat kolumnfält fylls i automatiskt. Om du definierar dina egna kolumner via Columns samlingen måste du ange SortExpression egenskapen för varje kolumn. Annars visas inte länkknappen i rubriken.
Om du klickar på länkknappen för en kolumn sorteras objekten GridView i kontrollen baserat på sorteringsuttrycket. Vanligtvis är sorteringsuttrycket bara namnet på det fält som visas i kolumnen, vilket gör GridView att kontrollen sorteras med avseende på den kolumnen. Om du vill sortera efter flera fält använder du ett sorteringsuttryck som innehåller en kommaavgränsad lista med fältnamn. Du kan fastställa det sorteringsuttryck som GridView kontrollen tillämpar med hjälp SortExpression av egenskapen . Om du klickar på en kolumns länkknapp växlas sorteringsriktningen mellan stigande och fallande ordning upprepade gånger. Använd egenskapen för att fastställa den aktuella sorteringsriktningen SortDirection .
Kontrollen GridView innehåller flera händelser som du kan använda för att utföra en anpassad åtgärd vid sortering. I följande tabell visas tillgängliga händelser.
| Händelse | Description |
|---|---|
| Sorted | Inträffar när hyperlänken för att sortera en kolumn klickas, men när GridView kontrollen har hanterat sorteringsåtgärden. Den här händelsen används ofta för att utföra en uppgift när användaren klickar på en hyperlänk för att sortera en kolumn. |
| Sorting | Inträffar när hyperlänken för att sortera en kolumn klickas, men innan GridView kontrollen hanterar sorteringsåtgärden. Den här händelsen används ofta för att avbryta sorteringsåtgärden eller för att utföra en anpassad sorteringsrutin. |