Пакетное редактирование и проблема обратной связи в динамическом Radgrid - PullRequest
0 голосов
/ 17 июня 2019

Я хочу Пакетное редактирование моего динамического RadGridView.

Динамический RadGridView: я создал gridview в PageInit, в отличие от определения в разметке.Недостаток этого метода в том, что он создает вид сетки для каждого поста назад.

Проблема в том, что когда я редактирую вторую строку, он публикует обратно и создает всю сетку в PageInit, а значение первой строки теряется какрезультат.Как я могу сохранить значения всех предыдущих строк, когда нажата кнопка редактирования следующей строки?

 grdControl = New RadGrid()
        grdControl.ID = "grid"
        grdControl.Width = Unit.Pixel(1000)
        grdControl.AllowSorting = True
        grdControl.PagerStyle.Mode = GridPagerMode.NextPrevAndNumeric
        grdControl.AllowPaging = True
        grdControl.AllowAutomaticUpdates = False
        grdControl.EnableEmbeddedScripts = False
        grdControl.AllowMultiRowEdit = True

        grdControl.MasterTableView.AutoGenerateColumns = False
        grdControl.MasterTableView.EnableColumnsViewState = False
        grdControl.MasterTableView.EditMode = GridEditMode.InPlace
        grdControl.MasterTableView.EnableViewState = True


        AddHandler grdControl.ItemDataBound, AddressOf grdControl_ItemDataBound
        AddHandler grdControl.ItemCommand, AddressOf grdControl_ItemCommand
        AddHandler grdControl.NeedDataSource, AddressOf grdControl_needDataSource

Событие ItemCommand RadGrid выглядит следующим образом

Protected Sub grdControl_ItemCommand(ByVal sender As Object, ByVal e As GridCommandEventArgs)
    If e.CommandName = "Edit" Then
        If TypeOf e.Item Is GridDataItem Then
            Dim item As GridDataItem = e.Item
            Dim Labelrow_ID As String = TryCast(item.FindControl("lbl1"), Label).Text
            'Dim str As String = (DirectCast(item.DataItem, DataRowView))("emp_id").ToString()
            item.BackColor = Drawing.Color.Pink

        ElseIf e.CommandName = "UpdateAll" Then

            For Each editedItem As GridEditableItem In grdControl.EditItems

                Dim newValues As Hashtable = New Hashtable
                'The GridTableView will fill the values from all editable columns in the hash
                e.Item.OwnerTableView.ExtractValuesFromItem(newValues, editedItem)
                SqlDataSource1.UpdateCommand = String.Format("Update Customers SET ContactName='{0}' WHERE CustomerID='{1}'", newValues("ContactName"), editedItem.GetDataKeyValue("CustomerID").ToString())
                SqlDataSource1.Update()
                editedItem.Edit = False
            Next

        End If
    End If
End Sub

Я ожидаюсохранить значения всех строк, которые были отредактированы, чтобы я мог выполнить пакетное редактирование.

...