我有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.
我卡在那里,不知道其他方法这样做。请帮帮我。
答案 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)