0

我有两个电子邮件字段,一个是文本字段(索引 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 比较陌生,所以我绝对不知道所有可用的构造。

如何在正常网格显示时隐藏文本字段,但在编辑模式下仍然可以显示该字段?

4

2 回答 2

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 
于 2013-09-14T05:13:38.510 回答
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
于 2013-09-17T17:23:52.093 回答