選択したアイテムテンプレート内のAsp.netリストビューでコントロールを見つける

StackOverflow https://stackoverflow.com/questions/204747

  •  03-07-2019
  •  | 
  •  

質問

機能を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

選択したアイテムテンプレート内でコントロールを見つける方法を知っている人はいますか?

役に立ちましたか?

解決

選択したアイテムだけでなく、ListView全体でFindControlを呼び出しています。これは動作するはずです:

Dim lblModuleTitle As Label = CType(listviewModules.Items(listviewModules.SelectedIndex).FindControl("lblModuleTitle"), Label)
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top