Back to Devexpress

How to: Focus a Newly Inserted Card

aspnet-115469-components-card-view-examples-how-to-focus-a-newly-inserted-card.md

latest3.2 KB
Original Source

How to: Focus a Newly Inserted Card

  • Dec 17, 2020
  • 2 minutes to read

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.

aspx
<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>
csharp
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);
}
vb
Protected Sub ASPxCardView1_CardInserted(ByVal sender As Object, ByVal e As DevExpress.Web.Data.ASPxDataInsertedEventArgs)
    Dim newKey As Object = Nothing
    If e.AffectedRecords = 1 Then
        Dim objects As ICollection = uof.GetObjectsToSave()
        If objects IsNot Nothing AndAlso objects.Count = 1 Then
            Dim enumeration As IEnumerator = objects.GetEnumerator()
            enumeration.MoveNext()
            Dim obj As Customer = DirectCast(enumeration.Current, Customer)
            uof.CommitChanges()
            newKey = obj.Oid
        End If
    End If
    ASPxCardView1.FocusedCardIndex = ASPxCardView1.FindVisibleIndexByKeyValue(newKey)
End Sub