我在.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>
我只想在用户点击“编辑”按钮编辑行时显示该列。
答案 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
答案 1 :(得分:1)
GridView.Columns[9].Visible = false;
之类的代码应该可以工作 - 唯一的事情是网格数据绑定必须在此行之后发生。如果您依靠视图状态在回发后方案中绑定网格,那么您可以在设置列可见性后尝试放置GridView.DataBind()
。
另一种更难的方法是在RowDataBound
事件中设置单元格级别的可见性 - 请参阅使用此技术的this article。