我有两个电子邮件字段,一个是文本字段(索引15),另一个是mailto:超链接(索引16),两者都在gridview中。 (是的,我知道通过索引识别并不是最好的方法 - 只是试着让它在这一点上起作用。)
当不编辑时,我只需要显示超链接字段(使用户可以点击它)。编辑时,我只需要显示文本字段,这样他们就可以修改值。
我已经根据需要使用了所有工作除了,这两个字段在最初显示网格时显示。如果我尝试以任何正常方式隐藏文本字段(隐藏RowDataBound上的单元格或在声明时隐藏列),那么在编辑时它不会显示。
这是我到目前为止所做的事情。 RowEditing事件具有以下代码:
GridView1.Columns(16).Visible = False
GridView1.Columns(15).Visible = True
RowCancelingEdit事件具有相反的逻辑,在两个字段上切换可见性。最后RowUpdating事件具有以下内容,它将重新打开超链接显示:
GridView1.Columns(16).Visible = True
我对ASP.NET比较陌生,所以我绝对不知道所有可用的结构。
如何在正常网格显示时隐藏文本字段,但仍然可以在编辑模式下显示该字段?
答案 0 :(得分:0)
尝试使用RowCommand事件并设置编辑按钮CommandName =“name”
If e.CommandName = "name" Then
Dim row As GridViewRow = DirectCast(DirectCast(e.CommandSource, LinkButton).NamingContainer, GridViewRow)
Dim lblwwwhid = CType(row.FindControl("txtwwwhid"), Label)
lblwwwhid .visible =false
End if
答案 1 :(得分:0)
我突然意识到我可以在初始数据绑定(可行)上显示/隐藏列,如下:
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
If Not Page.IsPostBack Then
DataBind()
GridView1.Columns(16).Visible = True
GridView1.Columns(15).Visible = False
End If
End Sub