1

我正在将功能从 asp.net Gridview 转换为 Listview。在所选项目更改时的网格视图中,我将从所选行中的标签中获取一个值并将其写入网格视图之外的不同标签。

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。但是,您不能对所选项目进行 findcontrol。当我尝试执行以下操作时(我得到一个空引用异常):

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

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

4

1 回答 1

3

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

Dim lblModuleTitle As Label = CType(listviewModules.Items(listviewModules.SelectedIndex).FindControl("lblModuleTitle"), Label)
于 2008-10-15T13:54:11.370 回答