CardViewColumn.SortIndex Property
Gets or sets the column’s position among sorted columns.
Namespace: DevExpress.Web
Assembly: DevExpress.Web.v24.1.dll
NuGet Package: DevExpress.Web
Declaration
Property Value
Type | Default | Description |
---|---|---|
Int32 | -1 | An integer value that specifies the zero-based column’s index among sorted columns. -1 if data is not sorted by this column. |
Remarks
The ASPxCardView allows data sorting by multiple columns. Once a column is sorted, it is automatically added to the collection of sorted columns. If no columns were previously sorted, the column becomes the only element in the collection and gets the 0 sort index. If sorting by one more columns, the newly sorted column is appended to the collection and gets the 1 index, etc.
When data is sorted by multiple columns, you can change the position (order) of sorted columns using the SortIndex property. Note that changing the sorted columns position changes order of cards.
Setting the SortIndex property to a non-negative integer, the column is added to the sorted columns list. The column’s CardViewColumn.SortOrder property is automatically set to ColumnSortOrder.Ascending. Setting a column’s SortIndex property value to -1 cancels data sorting by this column.
Sorting is allowed if the ASPxGridBehaviorSettings.AllowSort property is set to true
.
Example
The code sample below demonstrates how to focus a newly inserted card. Handle the CardInserted event to get a key value of the card. Call the FindVisibleIndexByKeyValue(Object) method to get the card’s visible index. Then set the FocusedCardIndex property.
<dx:ASPxCardView ID="ASPxCardView1" runat="server" AutoGenerateColumns="False" DataSourceID="XpoDataSource1"
KeyFieldName="Oid" OnCardInserted="ASPxCardView1_CardInserted">
<SettingsPager>
<SettingsTableLayout ColumnCount="2" RowsPerPage="2" />
</SettingsPager>
<SettingsBehavior AllowFocusedCard="True" />
<Columns>
<dx:CardViewTextColumn FieldName="Oid" ReadOnly="True"
SortIndex="0" SortOrder="Ascending" Visible="False" />
<dx:CardViewTextColumn FieldName="CompanyName" />
<dx:CardViewTextColumn FieldName="ContactName" />
<dx:CardViewTextColumn FieldName="Country" />
</Columns>
<CardLayoutProperties>
<Items>
<dx:CardViewCommandLayoutItem HorizontalAlign="Right" ShowEditButton="True" ShowNewButton="True" />
<dx:CardViewColumnLayoutItem ColumnName="Oid" />
<dx:CardViewColumnLayoutItem ColumnName="Company Name" />
<dx:CardViewColumnLayoutItem ColumnName="Contact Name" />
<dx:CardViewColumnLayoutItem ColumnName="Country" />
<dx:EditModeCommandLayoutItem HorizontalAlign="Right" />
</Items>
</CardLayoutProperties>
</dx:ASPxCardView>
protected void ASPxCardView1_CardInserted(object sender, DevExpress.Web.Data.ASPxDataInsertedEventArgs e) {
object newKey = null;
if (e.AffectedRecords == 1)
{
ICollection objects = uof.GetObjectsToSave();
if (objects != null && objects.Count == 1)
{
IEnumerator enumeration = objects.GetEnumerator();
enumeration.MoveNext();
Customer obj = (Customer)enumeration.Current;
uof.CommitChanges();
newKey = obj.Oid;
}
}
ASPxCardView1.FocusedCardIndex = ASPxCardView1.FindVisibleIndexByKeyValue(newKey);
}