因此,我具有包含数据的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
但是每次运行代码时,都会出现此错误:
“索引超出了数组的范围”
视图如下:
答案 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),按钮的启用和禁用状态之间不会有视觉差异。否则,您还需要更改样式以将其变灰并删除鼠标悬停效果。