循环遍历行时,GridView列会丢失超链接

时间:2015-02-02 19:12:19

标签: asp.net vb.net gridview hyperlink

我有一个用vb.net编写的asp.net页面,它有一个gridview表。该表设置为每行都有一个复选框列。如果选中此行的复选框,我会做一些额外的事情。其中一列还包含该列中每个单元格的文本超链接。

我在页面上有一个按钮,它将循环并以编程方式检查每个复选框。按钮正确执行此操作;但是,由于某种原因,它还会从其他列中删除超链接。有什么想法吗?

以下是我为超链接列设置超链接的代码:

Protected Sub gridData_RowDataBound(sender As Object, e As GridViewRowEventArgs) Handles gridData.RowDataBound
    'When a row is added to the data grid view we need to add the hyperlink to the zipname column
    If e.Row.RowType = DataControlRowType.DataRow Then
        Dim cell As TableCell = e.Row.Cells(4)
        Dim lnk As HyperLink = New HyperLink

        'Set properties of the link
        lnk.NavigateUrl = cell.Text
        lnk.Text = cell.Text

        'Format the filename, filepath, zipname, and username to be lowercase
        e.Row.Cells(1).Text = LCase(e.Row.Cells(1).Text)
        e.Row.Cells(3).Text = LCase(e.Row.Cells(3).Text)
        e.Row.Cells(4).Text = LCase(e.Row.Cells(4).Text)
        e.Row.Cells(5).Text = LCase(e.Row.Cells(5).Text)


        'Add the hyperlink
        cell.Controls.Clear()
        cell.Controls.Add(lnk)
    End If
End Sub

以下是全部选中按钮的代码:

 Protected Sub cmdCheckAll_Click(sender As Object, e As EventArgs) Handles cmdCheckAll.Click
    'Check all of the download checkboxes

    For Each row As GridViewRow In gridData.Rows
        CType(row.FindControl("CheckBox1"), CheckBox).Checked = True
    Next

End Sub

0 个答案:

没有答案