在gridview中隐藏ItemTemplate

时间:2011-05-13 02:52:43

标签: asp.net gridview

我在.aspx页面中有这段代码

<gridview .....
  <columns>
 ............ 
 ...........
<asp:templatefield Visible="true" headertext="Title" >
<edititemtemplate>
        <asp:checkbox id="chkTitle" runat="server" />
</edititemtemplate>
</asp:templatefield>

<asp:commandfield buttontype="Link" edittext="Edit" showeditbutton="true"/>
 </columns>
 </gridview>

我只想在用户点击“编辑”按钮编辑行时显示该列。

2 个答案:

答案 0 :(得分:1)

在您的GV数据绑定事件处理程序中(不是行数据绑定):

For i As Integer = 0 To GridView1.Rows.Count - 1
     If GridView1.EditIndex = -1 Then
         GridView1.Rows(i).Cells(0).Visible = False
     else
         GridView1.Rows(i).Cells(0).Visible = true
     end if
Next

If GridView1.EditIndex = -1 Then
    GridView1.HeaderRow.Cells(0).Visible = False
End If

Source

答案 1 :(得分:1)

GridView.Columns[9].Visible = false;之类的代码应该可以工作 - 唯一的事情是网格数据绑定必须在此行之后发生。如果您依靠视图状态在回发后方案中绑定网格,那么您可以在设置列可见性后尝试放置GridView.DataBind()

另一种更难的方法是在RowDataBound事件中设置单元格级别的可见性 - 请参阅使用此技术的this article