2016-12-14 48 views
2

我的Repeater中有一個下拉框,根據嵌套在Repeater中的Gridview中選擇哪個行來填充下拉框。獲取嵌套在Repeater中的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 

但因爲它是動態生成的Repeater裏面我不知道GridView控件的ID。有時有2個GridView,其他時間有20個。

那麼如何從代碼隱藏的動態生成的GridView中的當前選定行中獲取值?

+0

嘗試以下:受保護的子GvRevisionInfo2_OnSelectedIndexChanged(發送者爲對象,例如作爲EventArgs的) 昏暗dgvRow作爲一個DataGridViewRow = CTYPE(發件人,的DataGridViewRow) 昏暗國家作爲字符串= dgvRow.Cells( 「原產國」)值 。 End Sub – jdweng

+0

謝謝。試圖但DataGridViewRow沒有定義。我有進口系統,是不是在系統中的贏的形式DataGridViewRow? –

+0

你有GridViewRowPresenter而不是DataGridViewRow嗎? – 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