在所选项目模板中的Asp.net Listview中查找控件

时间:2008-10-15 13:43:11

标签: asp.net vb.net listview

我正在将功能从asp.net Gridview转换为Listview。在gridview中,当所选项目发生更改时,我会从所选行中的标签中获取一个值,并将其写入gridview之外的其他标签。

Protected Sub grdModules_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles grdModules.SelectedIndexChanged

    Dim lblModuleTitle As Label = grdModules.SelectedRow.FindControl("lblModuleTitle")
    lblCurrentModule.Text = lblModuleTitle.Text

End Sub

在Listview中,没有“SelectedRow”概念,而是SelectedItem。但是,您无法对所选项目进行查找控制。当我尝试执行以下操作时(我得到一个空引用异常):

Protected Sub listviewModules_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles listviewModules.SelectedIndexChanged

    Dim lblModuleTitle As Label = CType(listviewModules.FindControl("lblModuleTitle"), Label)
    lblCurrentModule.Text = lblModuleTitle.Text

End Sub

有谁知道在所选项目模板中找到控件的方法?

1 个答案:

答案 0 :(得分:3)

您在整个ListView上调用FindControl,而不仅仅是所选项目。这应该有效:

Dim lblModuleTitle As Label = CType(listviewModules.Items(listviewModules.SelectedIndex).FindControl("lblModuleTitle"), Label)