Back to Devexpress

ASPxCardView.EnableCardsCache Property

aspnet-devexpress-dot-web-dot-aspxcardview-f5186dd2.md

latest7.5 KB
Original Source

ASPxCardView.EnableCardsCache Property

Gets or sets whether data caching is enabled.

Namespace : DevExpress.Web

Assembly : DevExpress.Web.v25.2.dll

NuGet Package : DevExpress.Web

Declaration

csharp
[DefaultValue(true)]
public bool EnableCardsCache { get; set; }
vb
<DefaultValue(True)>
Public Property EnableCardsCache As Boolean

Property Value

TypeDefaultDescription
Booleantrue

true, to enable data caching; otherwise, false.

|

Remarks

By default, the ASPxCardView stores data in memory for quick access. This avoids repeated database calls when performing various operations that don’t require reloading data (e.g., rearranging or hiding columns). As a result, this increases the Web application scalability.

To disable data caching, set the EnableCardsCache option to false. This can be useful in the following cases:

  • The ASPxCardView displays real-time data.
  • Binding the ASPxCardView control to data created at runtime. The card view always reloads data from the server when you call the DataBind() method.
  • The ASPxCardView control uses the CardViewBinaryImageColumn. Setting the EnableCardsCache property to false reduces web page loading time.

Note

If you use custom objects that utilize a referenced association, the ASPxCardView tries to cache references as well. The serialization of a custom object is performed by the ToString method and is performed smoothly. But the object deserialization (restoration from String to object) could be raised with an exception:

TypeConverter cannot convert from System.String.

One solution is to turn off the ASPxCardView.EnableCardsCache property. This solution is acceptable when the page doesn’t have several grids, and in most cases, this doesn’t affect page performance significantly.

However, you can implement a custom TypeConverter derived class that can convert from the String type correctly. To learn more, see the Code Central example: How to implement a custom TypeConverter class for an XPO object

Example

The following example demonstrates how to show a complex property value in DataItemTemplate of a column that uses BindingExpressions.

aspx
<dx:aspxcardview ID="ASPxCardView1" AutoGenerateColumns="False" EnableCardsCache="False" runat="server" DataSourceID="ObjectDataSource1" KeyFieldName="Id">
    <SettingsBehavior AllowFocusedCard="True" />
    <Columns>
        <dx:CardViewTextColumn FieldName="Id" VisibleIndex="0" Width="10%">
        </dx:CardViewTextColumn>
        <dx:CardViewTextColumn FieldName="Name" VisibleIndex="1" Width="30%">
        </dx:CardViewTextColumn>
        <dx:CardViewTextColumn Caption="Street" FieldName="Address" VisibleIndex="2" Width="30%">
            <DataItemTemplate>
                <dx:ASPxTextBox ID="ASPxTextBox1" runat="server" Text='<%# Eval("Address.Street") %>' Width="100%"></dx:ASPxTextBox>
            </DataItemTemplate>
        </dx:CardViewTextColumn>
        <dx:CardViewTextColumn Caption="City" FieldName="Address" VisibleIndex="3" Width="33%">
            <DataItemTemplate>
                <dx:ASPxTextBox ID="ASPxTextBox2" runat="server" Text='<%# Eval("Address.City") %>' Width="100%"></dx:ASPxTextBox>
            </DataItemTemplate>
        </dx:CardViewTextColumn>
    </Columns>
</dx:aspxcardview>
<asp:ObjectDataSource ID="ObjectDataSource1" runat="server" SelectMethod="SelectData" TypeName="Person">
</asp:ObjectDataSource>
csharp
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Collections.Generic;

public class Person {
    private int id;
    private string name;
    private Address address;

    public Person() {

    }
    public Person(int id, string name, Address address) {
        this.id = id;
        this.name = name;
        this.address = address;
    }

    public int Id { get{ return id; } }
    public string Name { get{ return name; } }
    public Address Address { get{ return address; } }

    public List<Person> SelectData() {
        List<Person> persons = new List<Person>();
        persons.Add(new Person(0, "John", new Address("Home Lane", "Homesville")));
        persons.Add(new Person(1, "Henry", new Address("436 1st Ave", "Cleveland")));
        return persons;
    }
}

public class Address {
    string street;
    string city;
    public Address(string street, string city) {
        this.street = street;
        this.city = city;
    }

    public string Street { get { return street; } }
    public string City { get { return city; } }}
vb
Imports System
Imports System.Data
Imports System.Configuration
Imports System.Web
Imports System.Web.Security
Imports System.Web.UI
Imports System.Web.UI.WebControls
Imports System.Web.UI.WebControls.WebParts
Imports System.Web.UI.HtmlControls
Imports System.Collections.Generic

Public Class Person

    Private id_Renamed As Integer

    Private name_Renamed As String

    Private address_Renamed As Address

    Public Sub New()

    End Sub
    Public Sub New(ByVal id As Integer, ByVal name As String, ByVal address As Address)
        Me.id_Renamed = id
        Me.name_Renamed = name
        Me.address_Renamed = address
    End Sub

    Public ReadOnly Property Id() As Integer
        Get
            Return id_Renamed
        End Get
    End Property
    Public ReadOnly Property Name() As String
        Get
            Return name_Renamed
        End Get
    End Property
    Public ReadOnly Property Address() As Address
        Get
            Return address_Renamed
        End Get
    End Property

    Public Function SelectData() As List(Of Person)
        Dim persons As New List(Of Person)()
        persons.Add(New Person(0, "John", New Address("Home Lane", "Homesville")))
        persons.Add(New Person(1, "Henry", New Address("436 1st Ave", "Cleveland")))
        Return persons
    End Function
End Class

Public Class Address

    Private street_Renamed As String

    Private city_Renamed As String
    Public Sub New(ByVal street As String, ByVal city As String)
        Me.street_Renamed = street
        Me.city_Renamed = city
    End Sub

    Public ReadOnly Property Street() As String
        Get
            Return street_Renamed
        End Get
    End Property
    Public ReadOnly Property City() As String
        Get
            Return city_Renamed
        End Get
    End Property
End Class

See Also

Built-in Card Cache

Card View

ASPxCardView Class

ASPxCardView Members

DevExpress.Web Namespace