Skip to main content

How to: Use a Hyperlink in CardView Column Cells

  • 2 minutes to read

Developers often need to include several field values in a hyperlink displayed in CardView column cells. We recommend that you use templates in this instance. The following example uses two similar approaches to show how this is implemented:

1) In a simple case, the href parameter of the <a> element is defined by the KeyValue of the processed card. 2) In a complex case, the href parameter of the <a> element is defined in the server-side GetCardValues(Int32, String[]) method.

<dx:ASPxCardView ID="ASPxCardView1" DataSourceID="AccessDataSource2" KeyFieldName="CategoryID" 
    PreviewFieldName="Notes" AutoGenerateColumns="False" EnableCardsCache="False" 
    ClientInstanceName="cardview" runat="server" Width="1000px">
    <SettingsPager>
        <SettingsTableLayout ColumnCount="2" RowsPerPage="2" />
    </SettingsPager>
    <SettingsBehavior AllowFocusedCard="True" ConfirmDelete="True" />
    <Columns>
        <dx:CardViewTextColumn FieldName="CategoryID" ReadOnly="True" />
        <dx:CardViewTextColumn FieldName="CategoryName" />
        <dx:CardViewTextColumn FieldName="Description" />
        <dx:CardViewTextColumn Caption="Simple Hyperlink Column" >
            <DataItemTemplate>
                <a id="clickElement" target="_blank" href="Default2.aspx?id=<%# Container.KeyValue%>"><%# "Show New Form, Key Field = " + Eval("CategoryID").ToString()% />
            </DataItemTemplate>                                    
        </dx:CardViewTextColumn>
        <dx:CardViewTextColumn Caption="Complex Hyperlink Column" >
            <DataItemTemplate>
                <a id="A1" target="_blank" href="Default2.aspx?id=<%# GetCardValue(Container)%>"><%# "Show New Form, CategoryName = " + Eval("CategoryName").ToString()% />
            </DataItemTemplate>
        </dx:CardViewTextColumn>
    </Columns>
</dx:ASPxCardView>
<asp:AccessDataSource ID="AccessDataSource2" runat="server" DataFile="~/App_Data/nwind.mdb"
    SelectCommand="SELECT * FROM [Categories]" />
<body>
    <form id="form1" runat="server">
    <div></div>
    </form>
</body>
protected string GetCardValue(CardViewDataItemTemplateContainer container) {
    return container.CardView.GetCardValuesByKeyValue(container.KeyValue, "CategoryName").ToString();
}
protected void Page_Load(object sender, EventArgs e) {
    if (!string.IsNullOrEmpty(Request.QueryString["id"]))
        Response.Write("ID = " + Request.QueryString["id"]);
}