Я не могу получить строки обновления RowDataBound в GridView после первой строки?

#asp.net #vb.net

#asp.net #vb.net

Вопрос:

Снова эксперты Helo.

Я задавал вопрос, подобный этому, в прошлом. Я смог решить эту проблему, полностью удалив gvRowDataBound из кода. Это похожий код, за исключением того, что я не могу удалить gvRowDataBound sub.

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

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

Вместо этого курсор перемещается вниз к следующей строке.

Я не разрабатывал это, и мне трудно понять, что нужно изменить.

Я был бы очень, очень признателен за вашу помощь.

Заранее большое спасибо.

Вот подзаголовок, который вызывает у меня приступы. При необходимости я могу предоставить дополнительную информацию

 Protected Sub gvRowDataBound(ByVal sender As Object, ByVal e As GridViewRowEventArgs)
    If e.Row.RowType = DataControlRowType.DataRow Then
        Dim drv As DataRowView = e.Row.DataItem
        Dim nameid As String = drv("empl_first").ToString amp; Space(5) amp; drv("empl_last").ToString amp; Space(5) amp; Space(5) amp; drv("employee_ID").ToString
        If tmpEmplID <> drv("employee_ID").ToString Then
            tmpEmplID = drv("employee_ID").ToString
            Dim tbl As Table = e.Row.Parent
            If Not IsDBNull(tbl) Then
                Dim row As New GridViewRow(-1, -1, DataControlRowType.DataRow, DataControlRowState.Normal)
                Dim cell As New TableCell
                cell.ColumnSpan = Me.GridView1.Columns.Count

                cell.Width = Unit.Percentage(100)
                cell.Style.Add("font-weight", "bold")
                cell.Style.Add("background-color", "#c0c0c0")
                cell.Style.Add("color", "white")

                Dim span As New HtmlGenericControl("span")
                'span.InnerHtml = "Employee ID:    " amp; nameid amp; Space(10)

                If drv("date_stamp_appr").ToString = "" Then
                    span.InnerHtml  = " <input type='button' ID='" amp; tmpEmplID amp; "' value='Approve' onclick='GetHere(""" amp; tmpEmplID amp; """)'></input>"
                Else
                    span.InnerHtml  = " <b>APPROVED ON: " amp; drv("date_stamp_appr").ToString amp; "</b>"
                End If
                Dim linkBtn As LinkButton = CType(e.Row.Cells.Item(0).Controls.Item(2), LinkButton)
                linkBtn.OnClientClick = "return confirm('Are you sure you want to   delete this entry?');"

                cell.Controls.Add(span)
                row.Cells.Add(cell)

                tbl.Rows.AddAt(tbl.Rows.Count - 1, row)

            End If

        End If
    End If

End Sub
  

Ответ №1:

Попробуйте использовать событие RowEditing для GridView вместо события RowDataBound.

Комментарии:

1. Спасибо за ваш быстрый ответ, но он не работает. Делаю точно так, как описано выше. Есть ли способ переделать это -: tbl.Rows. AddAt(tbl.Rows. Количество — 1, строка). После того, как он прокомментирован, он работает должным образом, но слово Approve исчезает. Я так напряжен. Любая помощь была бы действительно, действительно вдохновляющей.

2. Кто-нибудь может помочь? Все, что должен делать код, это перечислять клиентов на основе отдела, к которому принадлежит их супервизор. Я хотел бы переписать его. Есть клавиши редактирования / удаления. Наконец, есть кнопка под названием Одобрено. Каждый раз, когда супервизор нажимает эту кнопку, в базу данных вставляется дата, и кнопка «Одобрено» исчезает. Я могу обработать код, который показывает отдел супервизора и всех тех, кто принадлежит к этому отделу. Я могу заставить удаление / обновление работать. Мне просто нужна помощь с отображением утвержденной кнопки. Мне действительно нужна помощь. Спасибо

3. Является ли рассматриваемая дата частью инструкции select для источника данных этого gridview?