2016-12-14 16 views
2

リピータ内にネストされたGridview内で選択された行に基づいて、リピータにドロップダウンがあります。リピータにネストされたGridViewの選択された行を取得します。

GridViewでどの行が選択されているかに基づいて、更新するにはドロップダウンが必要です。

通常、私はこのように、現在選択されている行を取得することができます:

Protected Sub GvRevisionInfo2_OnSelectedIndexChanged(sender As Object, e As EventArgs) 
    Dim country As String = TryCast(GridView1.SelectedRow.FindControl("lblCountry"), Label).Text 
End Sub 

しかし、それがリピーターの内部で動的に生成されていますので、私は、GridViewコントロールのIDを知りません。場合によっては、2つのGridViewが20回ある場合があります。

したがって、コードビハインドで動的に生成されたGridView内の現在選択されている行から値を取得するにはどうすればよいですか?

+0

試してみてください。保護されたサブGvRevisionInfo2_OnSelectedIndexChanged(オブジェクトとして送信者、EventArgsのようE)DataGridViewRow = ctype関数として 薄暗いdgvRow(送信者、DataGridViewRow)文字列= dgvRow.Cells( "lblCountry")として 点心国バリュー 。 End Sub – jdweng

+0

ありがとうございます。それを試みても、DataGridViewRowは定義されていません。私はインポートシステムを持っている、DataGridViewRowシステム内に勝つフォーム内ではないのですか? –

+0

DataGridViewRowの代わりにGridViewRowPresenterを持っていますか? – jdweng

答えて

2

senderをGridViewにキャストして使用することができます。次

Protected Sub GvRevisionInfo2_OnSelectedIndexChanged(ByVal sender As Object, ByVal e As EventArgs) 
    Dim gridView As GridView = CType(sender,GridView) 
    Dim label As Label = CType(gridView.SelectedRow.FindControl("lblCountry"),Label) 
    Dim country As String = label.Text 
End Sub 
関連する問題