How to: Focus a Newly Inserted Card
- 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.
<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);
}