ASPxCardView.EnableCardsCache Property
Gets or sets whether data caching is enabled.
Namespace: DevExpress.Web
Assembly: DevExpress.Web.v18.2.dll
Declaration
[DefaultValue(true)]
public bool EnableCardsCache { get; set; }
<DefaultValue(True)>
Public Property EnableCardsCache As Boolean
Property Value
Type |
Default |
Description |
Boolean |
**true** |
true, to enable data caching; otherwise, false.
|
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
This example demonstrates how to show a complex property value in DataItemTemplate of a column using BindingExpressions
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
}
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
<%@ Register Assembly="DevExpress.Web.v15.1, Version=15.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" Namespace="DevExpress.Web" TagPrefix="dx" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>
<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>
</div>
</form>
</body>
</html>
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; } }}
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
Imports System
Imports System.Collections.Generic
Imports System.Linq
Imports System.Web
Imports System.Web.UI
Imports System.Web.UI.WebControls
Partial Public Class _Default
Inherits System.Web.UI.Page
Protected Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs)
End Sub
End Class
<%@ Page Language="vb" AutoEventWireup="true" CodeFile="Default.aspx.vb" Inherits="_Default" %>
<%@ Register Assembly="DevExpress.Web.v15.1, Version=15.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" Namespace="DevExpress.Web" TagPrefix="dx" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>
<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>
</div>
</form>
</body>
</html>
See Also