#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?