VinKot Ответов: 1

Текстовое поле Gridview возвращает нулевое значение при 'findcontrol'


у меня есть gridview с полем шаблона текстового поля, динамически добавляемым в код позади, введенное значение в текстовое поле. При извлечении значения текстового поля оно возвращается пустым.

Ниже кода я попытался получить значение.

'*** Я ввел значение "Hello" в элемент управления текстовым полем перед выполнением приведенного ниже кода.

For Each row As GridViewRow In GridviewChild.Rows

            Dim tbSigningGroup As TextBox = DirectCast(row.Cells(4).FindControl("tbSigningGroup" + CStr(row.RowIndex)), TextBox)

            If Not tbSigningGroupIs Nothing Then
                Dim temp As String = tbSigningGroup.Text  ' ****** Returns NULL*******
            End If

Next


- Есть какие-нибудь предложения, где я делаю что-то не так?

Что я уже пробовал:

Я использовал метод CurrentRow.FindControl("ControlID"), чтобы получить значение, но все равно получаю пустую строку в качестве возвращаемого значения.

Bhola Ram Sahu

Вы должны проверить ту строку, где вы привязываете GridView.datasource. Убедитесь, что вы поместили эту строку в блок без обратной передачи. кажется, это сработает.

Richard Deeming

FindControl ожидает идентификатор элемента управления в том виде, в каком вы его ввели в разметку. Почему вы добавляете индекс строки к идентификатору?

Вы уверены, что он находит контроль? Тот tbSigningGroup не Nothing?

Как вы создаете контроль? Рассматривали ли вы возможность использования TemplateField вместо этого?

1 Ответов

Рейтинг:
0

lekhasreekrishna@gmail.com

 Dim Lbl_Control As Label= CType(row.FindControl("Label1"), Label)
// button click as usual, just get and check the value of Label control, rather than TextBox control.

Protected Sub B_Load_Click(ByVal sender As Object, ByVal e As EventArgs) '(sender As
                           Object, e As System.EventArgs) Handles B_Load.Click
    Dim FullText As String = ""
    For Each row As GridViewRow In GV_Comments.Rows
        Dim CB_Control As CheckBox = CType(row.FindControl("Comment_Select"), 
                                           CheckBox)
        Dim Lbl_Control As Label= CType(row.FindControl("Label1"), Label)
        If CB_Control IsNot Nothing AndAlso CB_Control.Checked AndAlso Lbl_Control
           IsNot Nothing Then
            FullText = FullText &  Lbl_Control.Text & "<br/>"
        End If
    Next row
    CompiledText.Text = FullText.ToString
End Sub