У меня есть вложенный GridView (GvMP_Summary_Items
). Каждая строка содержит DropDownList. DropDownList ограничен в событии RowDataBound вложенного GridView.
Каждая строка также содержит 1 кнопку. Нажав эту кнопку на событии RowCommand, я хотел бы найти текущее выбранное значение DropDownList, чтобы я мог использовать его далее в коде.
Код, который у меня есть, получит только значение по умолчанию DropDownList для каждой строки, которая в настоящее время установлена в 0
для каждой строки.
Ниже приведено событие RowCommand:
Protected Sub GvMP_Summary_Items_RowCommand(sender As Object, e As GridViewCommandEventArgs)
Dim lb As ImageButton = CType(e.CommandSource, ImageButton)
Dim gvRow As GridViewRow = lb.BindingContainer //Getting current row to get index
Dim GvMP_Summary_Items As GridView = CType(gvRow.FindControl("GvMP_Summary_Items"), GridView)
Dim intMPItem_Qty As Integer = CType(gvRow.FindControl("cboMPItem_Qty"), DropDownList).SelectedValue
Dim strMPItem_Qty As String = CType(gvRow.FindControl("txtMPItem_Qty"), TextBox).Text
End Sub
Я даже включил TextBox в строку GridView, значение по умолчанию пуста ""
. Хотя в строке, если что-то введено, событие RowCommand возвращает значение с запятой (,) перед ним.
Это доказывает, что я собираю правильную строку и могу получить значение из TextBox, но не DropDownList.
Есть ли что-то, что мне не хватает? Почему я могу вернуть значение, введенное в TextBox, но не выбранное значение DropDownList? Также почему запятая (,) перед значением TextBox?
Примечание: В приведенном выше коде кода код написан с использованием VB, поэтому ответы в VB по С#, но я могу принять оба.