有条件地隐藏GridViewCommandColumn中的DeleteButton

时间:2016-03-28 10:21:27

标签: vb.net aspxgridview

我有ASPxGridView来查看记录列表。从视图中,我创建了一个删除列,并希望它在记录具有满足条件时显示删除按钮。以下代码:

<dx:GridViewCommandColumn Caption="Delete" VisibleIndex="1" Width="30px"
                meta:resourcekey="GridViewCommandColumnResource1">
                <DeleteButton Visible="True">
                </DeleteButton>
            </dx:GridViewCommandColumn>

所以我专注于DeleteButton的Visible属性。条件必须返回一个布尔值,以便它知道何时显示和隐藏删除按钮。以下是如何实现此目的的示例:

<DeleteButton Visible='<%# ShowHide(Eval("Active")) %>'>
                </DeleteButton>
VB代码中的

Protected Function ShowHide(Active As Boolean) As Boolean
    Return Active
End Function

因此,如果 Active 为True,则函数需要返回True值,如果 Active 为False,则返回False值。换句话说,我确实在每个记录后面的代码中触发一个函数,以便在记录确实具有满足条件时显示删除按钮。但最后我得到了一条错误信息:

Parser Error Message: Databinding expressions are only supported on objects that have a DataBinding event. DevExpress.Web.ASPxGridView.GridViewCommandColumnButton does not have a DataBinding event.

我卡在那里,不知道其他方法这样做。请帮帮我。

2 个答案:

答案 0 :(得分:1)

经过一夜的研究,我找到了解决这个问题的新方法:

来自ASPxGridView中的aspx文件的代码块:

<dx:GridViewCommandColumn Caption="Delete" VisibleIndex="1" Width="30px"
                meta:resourcekey="GridViewCommandColumnResource1">
                <DeleteButton Visible='True'><!--TRI - 20160329 Please make sure the Visible attribute always True-->
                </DeleteButton>
            </dx:GridViewCommandColumn>

从代码behide中,我实现了一个初始方法来处理DeleteButton上的触发器:

Protected Sub xgv_CommandButtonInitialize(sender As Object, e As DevExpress.Web.ASPxGridView.ASPxGridViewCommandButtonEventArgs) Handles xgv.CommandButtonInitialize
    If e.ButtonType = DevExpress.Web.ASPxGridView.ColumnCommandButtonType.Delete Then
        If sender.GetRowValues(e.VisibleIndex, "Active") = True Then
            e.Visible = False
        End If
    End If
End Sub

该方法将通过检查Command Button Initialize上的 Active 值来处理DeleteButton。如果活动为True,则会隐藏DeleteButton,反之亦然。

答案 1 :(得分:0)

您可以处理ASPxClientGridView.CustomButtonClick Event,如下所示:Link或将自定义控件放入GridViewDataColumn.DataItemTemplateLink