ASPxCardView.CardUpdated Event
Occurs after a card has been updated.
Namespace: DevExpress.Web
Assembly: DevExpress.Web.v24.1.dll
NuGet Package: DevExpress.Web
Declaration
Event Data
The CardUpdated event's data class is ASPxDataUpdatedEventArgs. The following properties provide information specific to this event:
Property | Description |
---|---|
AffectedRecords | Gets the number of records affected by the update operation. Inherited from ASPxDataBaseUpdatedEventArgs. |
Exception | Gets the exception (if any) that was raised during the update operation. Inherited from ASPxDataBaseUpdatedEventArgs. |
ExceptionHandled | Gets or sets whether an exception raised during the update operation was handled in the event handler. Inherited from ASPxDataBaseUpdatedEventArgs. |
Keys | Gets a dictionary of field name/value pairs that specify the primary key of the item to update. |
NewValues | Gets a dictionary that contains the updated values of the non-key field name/value pairs in the item. |
OldValues | Gets a dictionary that contains the original field name/value pairs for the updated records. |
Remarks
The CardUpdated event occurs after the card with modified cell values has been updated. End-users can update cards by clicking the Update command. To cancel the update operation, handle the ASPxCardView.CardUpdating event.
Note
The CardUpdated event fires even though an exception occurs during the data update operation. Use the ASPxDataBaseUpdatedEventArgs.Exception and ASPxDataBaseUpdatedEventArgs.ExceptionHandled argument properties to determine whether or not any exception occurs during the corresponding action, and handle it if you wish.
Example
Since ASPxCardView works during callbacks by default, it is not possible to update an external control (that is not a child control of the callback owner) on the server side.
The following topic describes this limitation in detail: Callbacks.
This example covers both the ASPxCardView’s JSProperties feature (which allows you to pass a value from the server to the client) and the client-side ASPxClientCardView.EndCallback event (which is raised each time a callback is executed successfully). It is possible to use the ASPxCardView control’s client-side capabilities to set a JSProperty on the server, get it on the EndCallback, and change the “target” control.
<dx:aspxlabel ID="ASPxLabel1" runat="server" ClientInstanceName="clientLabel">
</dx:aspxlabel>
<dx:ASPxCardView ID="ASPxCardView1" runat="server" AutoGenerateColumns="false" DataSourceID="AccessDataSource1" KeyFieldName="CategoryID" OnCardUpdated="ASPxCardView1_CardUpdated">
<clientsideevents EndCallback="function(s, e) {
if (s.cpIsUpdated != '') {
clientLabel.SetText('The category '+s.cpIsUpdated+' is updated successfully');
clientLabel.GetMainElement().style.backgroundColor = 'green';
clientLabel.GetMainElement().style.color = 'white';
}
else {
clientLabel.SetText('');
}
}" />
<Columns>
<dx:CardViewColumn FieldName="CategoryID" ReadOnly="true" />
<dx:CardViewColumn FieldName="CategoryName" ReadOnly="true"/>
<dx:CardViewColumn FieldName="Description" ReadOnly="true"/>
</Columns>
<CardLayoutProperties>
<Items>
<dx:CardViewCommandLayoutItem ShowEditButton="true" HorizontalAlign="Right" />
<dx:CardViewColumnLayoutItem ColumnName="CategoryID" />
<dx:CardViewColumnLayoutItem ColumnName="CategoryName" />
<dx:CardViewColumnLayoutItem ColumnName="Description" />
<dx:EditModeCommandLayoutItem HorizontalAlign="Right" />
</Items>
</CardLayoutProperties>
</dx:ASPxCardView>
<asp:accessdatasource ID="AccessDataSource1" runat="server"
DataFile="~/App_Data/nwind.mdb"
DeleteCommand="DELETE FROM [Categories] WHERE [CategoryID] = ?"
InsertCommand="INSERT INTO [Categories] ([CategoryID], [CategoryName], [Description], [Picture]) VALUES (?, ?, ?, ?)"
SelectCommand="SELECT * FROM [Categories]"
UpdateCommand="UPDATE [Categories] SET [CategoryName] = ?, [Description] = ?, [Picture] = ? WHERE [CategoryID] = ?">
<deleteparameters>
<asp:parameter Name="CategoryID" Type="Int32" />
</deleteparameters>
<updateparameters>
<asp:parameter Name="CategoryName" Type="String" />
<asp:parameter Name="Description" Type="String" />
<asp:parameter Name="Picture" Type="Object" />
<asp:parameter Name="CategoryID" Type="Int32" />
</updateparameters>
<insertparameters>
<asp:parameter Name="CategoryID" Type="Int32" />
<asp:parameter Name="CategoryName" Type="String" />
<asp:parameter Name="Description" Type="String" />
<asp:parameter Name="Picture" Type="Object" />
</insertparameters>
</asp:accessdatasource>
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using DevExpress.Web;
public partial class _Default : System.Web.UI.Page {
protected void Page_Load(object sender, EventArgs e) {
ASPxCardView1.JSProperties["cpIsUpdated"] = "";
}
protected void ASPxCardView1_CardUpdated(object sender, DevExpress.Web.Data.ASPxDataUpdatedEventArgs e) {
if (e.Exception == null)
{
((ASPxCardView)sender).JSProperties["cpIsUpdated"] = e.Keys[0];
}
}
}