我有一个GridView
,启用了编辑和删除功能。如果GridView
中该行的特定列具有值,我希望禁用或隐藏编辑和删除:
在这种情况下,我希望GridView
的默认编辑/删除选项不可用,因为它在“名称”列中有值。这意味着只有第3列可以编辑。
我正在使用默认的GridView控件:
<asp:CommandField ShowDeleteButton="True" ShowEditButton="True" />
如果单击编辑,则显示该行的<EditItemTemplate>
,并且可以更改Ward和Sector值。 GridView
附加到ObjectDataSource,该ObjectDataSource链接到具有CRUD操作的类。
答案 0 :(得分:1)
您可以解析ID字段的值,并在gridview的RowDataBound事件中设置编辑/删除按钮的可见性。以下是我的工作方式,以下代码包含在gridview的RowDataBound事件处理程序中:
If e.Row.RowType = DataControlRowType.DataRow Then
'Get reference to the button you want to hide/show
Dim delButton As ImageButton = CType(e.Row.Cells(3).Controls(2), ImageButton)
'check your data for value
Dim bIsThereAValue as Boolean = DoACheckForAValue(YourGridView.DataKeys(e.Row.RowIndex).Value)
delButton.Visible = bIsThereAValue
End If
这种方法对我很有用,我经常使用这个项目可以在另一个实体中使用,我禁用能够删除项目(例如此网格显示可用的图片,但图片正在图库中使用,然后我禁用能够删除图片,直到它不再是图库的一部分。)
您要确保对列中的值进行充分检查,我不确定,如果IsNothing可行,或者您必须与字符串进行比较。空的或什么的,但它不应该太难。