УДАЛИТЬ СТРОКУ ИЗ СЕТКИ

У меня есть веб-панель с сеткой. эта сетка связана с SDT. Мне удалось добавить строки в SDT, а затем автоматически отобразить добавленные строки в сетке. Сейчас пытаюсь удалить определенные строки. В код события из столбца сетки я поместил этот код (взят из http://hmquiroz2.blogspot.com/2009/09/eliminar-item-de-sdt-en-genexus.html):

&Idx = &Sdt.IndexOf(&Sdt.CurrentItem)
&Sdt.Remove(&Idx)
grid1.refresh()  //  added later, trying to update the grid

но сетка осталась прежней. Я попытался добавить grid.refresh () после, но безрезультатно. Я пробовал изменить свойство "Web User Experience" с SMOOTH на PREVIOUS VERSIONS COMPATIBLE. И тоже не повезло. Отладка Я вижу, что свойство & SDT.Count не меняется.


person Manuel Arce    schedule 19.09.2014    source источник
comment
Возвращает ли метод IndexOf правильный индекс? Вы можете поместить & Idx на экран, чтобы проверить значение.   -  person Marcos Crispino    schedule 22.09.2014
comment
Да, это. Наконец-то я нашел проблему: в другом событии кода была a.refresh (). Это привело к тому, что сетка остановила обновление на полпути. : S   -  person Manuel Arce    schedule 22.09.2014


Ответы (2)


Я использую следующий код для удаления элемента из SDT:

&Idx = 0
For &SdtItem in &Sdt
    &Idx += 1
    If &SdtItem.Line = &Sdt.CurrentItem.Line
        &Sdt.Remove(&Idx)
        Exit
    EndIf
EndFor
person Gabriel Maldonado    schedule 22.09.2014
comment
Это работает без .Line. Уже нашел проблему. Спасибо - person Manuel Arce; 22.09.2014

Этот блок кода мне подходит:

&Sdt.Remove(&Sdt.IndexOf(&Sdt.CurrentItem))

Я использую его в пользовательском мероприятии ("Borrar")

person gdacosta    schedule 22.09.2014