Прежде всего, поскольку кнопка btn_Save
не находится внутри GridView
, нажатие на нее не повысит значение grd_Test_RowCommand
, либо переместите кнопку внутрь GridView
, либо нужно поднять ее вручную, как это:
Скопировано с форума asp.net:
Protected Sub Button1_Click(sender As Object, e As EventArgs)
Dim commandArgs As New CommandEventArgs("Command Name Here", "Your Command Argument Here")
'You can pass any row
'You can also skip the row parameter and get the row from Command Argument
Dim eventArgs As New GridViewCommandEventArgs(GridView1.Rows(0), GridView1, commandArgs)
GridView1_RowCommand(GridView1, eventArgs)
End Sub
Теперь относительно вашего исходного вопроса, вот как вы можете получить выбранное значение DropDownList
внутри RowCommand
события:
Редактировать: Исправлен код для получения текущей строки, для которой было вызвано событие RowCommand
Protected Sub grd_Test_RowCommand(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewCommandEventArgs) Handles grd_Test.RowCommand
If e.CommandName = "Select" Then
Dim index As Integer = Convert.ToInt32(e.CommandArgument)
Dim row As GridViewRow = DirectCast(DirectCast(e.CommandSource, LinkButton).NamingContainer, GridViewRow)
Dim ddl as DropDownList = CType(row.FindControl("drp_UnAssignProp", DropDownList)
Dim selectedValue as String = ddl.Text
End If
End Sub