删除Gridview中的编辑选项

时间:2016-11-24 06:09:48

标签: asp.net vb.net gridview

我的GridView如下

它有EmptyDatatemplate和命令字段

   <asp:GridView ID="AGridView" runat="server" AutoGenerateColumns="true"  style="table-layout:fixed;" Width="2000px"   RowStyle-HorizontalAlign="Left">
        <EmptyDataTemplate>
           &nbsp;
       </EmptyDataTemplate>
        <asp:CommandField ShowEditButton="True" ItemStyle-Width="80px" EditText="Edit">
         <ItemStyle Font-Bold="true" Font-Size="Small" />
          <HeaderStyle CssClass="AAddOn" />
         </asp:CommandField>
  </asp:GridView>

GridView看起来像(它只有2行)

Name   Age  Country
A      10    NNN       Edit  
B      23    NNN       Edit

现在我不需要在第一行显示编辑按钮。我该怎么做。

此处仅显示2行。

Name   Age  Country
A      10    NNN         
B      23    NNN       Edit

此处标题是Gridview标题单元格的数量,我的编辑位于最后一个单元格中。 (我的Gridview生成了动态生成的列,但只有2行,因此我无法获取固定列值,因此使用了标题计数)

 Dim Header As Integer
 For counts = 0 To AGridView.HeaderRow.Cells.Count
  Header = counts
  Next
 Dim  edit as LinkButton  = DirectCast(AGridView.Rows(0).cell(header).FindControl("Edit"),LinkButton)
    edit.Visible = False

上面的错误消息是对象引用未设置为instance.Index超出范围。

接下来我在AGridView_Rowdatabound里面尝试了但整个单元格正在消失。我只需要第一行编辑链接按钮可见为假

If e.Row.RowType = DataControlRowType.DataRow Then
    e.Row.Cells(Header).Visible = False
End If

我在这里缺少什么。我只需要第一行编辑按钮可见为假。

1 个答案:

答案 0 :(得分:1)

根据问题评论部分的讨论,假设您只想为第一个数据行禁用“编辑”按钮,而按钮位于第4列,我建议您尝试这样做:

OnRowDataBound声明添加到标记:

<asp:GridView ID="AGridView" ... OnRowDataBound="AGridView_RowDataBound">
    ...
</asp:GridView>

RowDataBound事件处理程序添加到文件后面的代码中:

Protected Sub AGridView_RowDataBound(sender As Object, e As GridViewRowEventArgs)
    If e.Row.RowIndex = 1 Then
        e.Row.Cells(3).Visible = False
    End If
End Sub