禁用Rad Grid中的“添加新”按钮

时间:2018-11-18 06:41:34

标签: asp.net vb.net radgrid

因此,我具有包含数据的Rad Grid,并且位于Add New Button上方。我想在用户有权添加时启用该功能(如果他没有添加该功能的话),然后将其禁用,我要花几个小时寻找解决方案,而我所要的就是以下代码:

Dim cmditem As GridCommandItem = CType(gvDefCountry.MasterTableView.GetItems(GridItemType.CommandItem)(0), GridCommandItem)
Dim ctrl As System.Web.UI.WebControls.Button = CType(cmditem.FindControl("AddNewRecordButton"), System.Web.UI.WebControls.Button)
ctrl.Enabled = False

但是每次运行代码时,都会出现此错误:

  

“索引超出了数组的范围”

视图如下:

enter image description here

2 个答案:

答案 0 :(得分:0)

尝试

If (TypeOf e.Item Is GridEditableItem) AndAlso (e.Item.IsInEditMode) Then

        For Each cmdItm As GridCommandItem In RadGrid1.MasterTableView.GetItems(GridItemType.CommandItem)
            Dim Addbtn As LinkButton = CType(cmdItm.FindControl("InitInsertButton"), LinkButton)
            Addbtn.Enabled = False
            Dim btn As Button = CType(cmdItm.FindControl("AddNewRecordButton"), Button)
            btn.Enabled = False
        Next
    End If

答案 1 :(得分:0)

应该可以。您将代码放在哪里?如果将其放在网格的gvDefCountry_PreRender事件中,它将很好地起作用。

但是,我建议您完全隐藏按钮而不是禁用按钮,因为根据所使用的皮肤(在我的情况下-Metro),按钮的启用和禁用状态之间不会有视觉差异。否则,您还需要更改样式以将其变灰并删除鼠标悬停效果。