機能を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
リストビューには、「SelectedRow」という概念はありませんが、SelectedItem があります。ただし、選択したアイテムに対して findcontrol を実行することはできません。次のことをしようとすると (null 参照例外が発生します):
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
選択した項目テンプレート内でコントロールを見つける方法を知っている人はいますか?