Skip to main content
Tab

CardViewClientSideEvents.CustomButtonClick Property

Gets or sets the name of the JavaScript function or the entire code which will handle a client ASPxCardView’s ASPxClientCardView.CustomButtonClick event.

Namespace: DevExpress.Web

Assembly: DevExpress.Web.v24.1.dll

NuGet Package: DevExpress.Web

Declaration

[DefaultValue("")]
public string CustomButtonClick { get; set; }

Property Value

Type Default Description
String String.Empty

A string that represents either the name of a JavaScript function or the entire JavaScript function code used to handle an event.

Example

The following example handles the CommandButtonInitialize and CustomButtonInitialize events to specify the CommandButtons and CustomCommandButtons properties. The DataRow’s VisibleIndex property and criteria (set based on field values) are used to determine button visibility.

<dx:ASPxCardView ID="ASPxCardView1" runat="server" DataSourceID="AccessDataSource1"         
    OnCustomButtonInitialize="ASPxCardView1_CustomButtonInitialize" 
    OnCommandButtonInitialize="ASPxCardView1_CommandButtonInitialize" 
    KeyFieldName="ProductID" AutoGenerateColumns="False">
    <ClientSideEvents CustomButtonClick="function(s, e) {alert('keyValue = ' + s.GetCardKey(e.visibleIndex));}" />
    <SettingsBehavior AllowFocusedCard="true" />
    <Columns>
        <dx:CardViewTextColumn FieldName="ProductName" />
        <dx:CardViewTextColumn FieldName="UnitPrice" />
        <dx:CardViewTextColumn FieldName="ProductID" ReadOnly="True">
    </Columns>
    <CardLayoutProperties>
        <Items>
            <dx:CardViewCommandLayoutItem HorizontalAlign="Right" 
                                          ShowDeleteButton="True" 
                                          ShowEditButton="True" />
            <dx:CardViewColumnLayoutItem ColumnName="ProductID" />
            <dx:CardViewColumnLayoutItem ColumnName="Product Name" />
            <dx:CardViewColumnLayoutItem ColumnName="UnitPrice" />
        </Items>
    </CardLayoutProperties>
</dx:ASPxCardView>  
protected void Page_Load(object sender, EventArgs e) {
    if (!IsPostBack) {
        (ASPxCardView1.CardLayoutProperties.Items[0] as CardViewCommandLayoutItem).CustomButtons.Add(CreateCustomButton());
    }
}
CardViewCustomCommandButton CreateCustomButton() {
    CardViewCustomCommandButton customBtn = new CardViewCustomCommandButton();
    customBtn.ID = "CustomBtn";
    customBtn.Text = "Custom button";
    return customBtn;
}
protected void ASPxCardView1_CommandButtonInitialize(object sender, ASPxCardViewCommandButtonEventArgs e) {
    if (e.VisibleIndex == -1) return;
    switch (e.ButtonType) {
        case CardViewCommandButtonType.Edit:
            e.Visible = EditButtonVisibleCriteria((ASPxCardView)sender, e.VisibleIndex);
            break;
        case CardViewCommandButtonType.Delete:
            e.Visible = DeleteButtonVisibleCriteria((ASPxCardView)sender, e.VisibleIndex);
            break;
    }
}
private bool EditButtonVisibleCriteria(ASPxCardView grid, int visibleIndex) {
    object card = grid.GetDataRow(visibleIndex);
    return ((DataRow)card)["ProductName"].ToString().Contains("a");
}
private bool DeleteButtonVisibleCriteria(ASPxCardView grid, int visibleIndex) {
    object card = grid.GetDataRow(visibleIndex);
    return ((DataRow)card)["ProductName"].ToString().Contains("b");
}
protected void ASPxCardView1_CustomButtonInitialize(object sender, ASPxCardViewCustomCommandButtonEventArgs e) {
    if (e.VisibleIndex == -1) return;
    if (e.ButtonID == "CustomBtn" && e.VisibleIndex % 2 != 0)
        e.Visible = DefaultBoolean.False;
}
See Also