в сетке w2ui Я хочу выбрать линию сетки после удаления строки ниже. Вот мой код JavaScript:
w2ui[ grd_obj.grid_id ].on( 'delete', function( event )
{
event.onComplete = function()
{
var min_ind = 100000
var sel = w2ui[ grd_obj.grid_id ].getSelection()
for ( var r in sel )
{
var ind = w2ui[ grd_obj.grid_id ].get( sel[ r ].recid, true )
min_ind = Math.min( ind, min_ind )
}
if ( event.phase == 'after' )
{
var ind = w2ui[ grd_obj.grid_id ].prevRow( min_ind )
var rcd = w2ui[ grd_obj.grid_id ].records[ ind ]
w2ui[ grd_obj.grid_id ].selectNone()
w2ui[ grd_obj.grid_id ].select( { recid: rcd[ grd_obj.grid_table.grid_key ], column: 0 } )
}
}
})
Я не могу найти, как перезагружать "перезагрузить" после удаления ... Отладка Я вижу, что в "после" события .select () работает иможно увидеть, что нужная запись выбрана. Но, как я понимаю, «удалить» триггер «перезагрузить» сетки и мой выбор исчезает ...: (
Как решить эту проблему?
База данных на стороне сервера (mysql + php).
Заранее спасибо ...
РЕДАКТИРОВАНИЕ (решено):
Найдено решение. Не уверен, что это хорошо, но оно работает ... Сделал что-то подобноечто: В свой объект сетки добавлен параметр grid_setRec, затем в событии delete присвоить это значение
w2ui[ grd_obj.grid_id ].on( 'delete', function( event )
{
event.onComplete = function()
{
var min_ind = 10000
var sel = w2ui[ grd_obj.grid_id ].getSelection()
for ( var r in sel )
{
var ind = w2ui[ grd_obj.grid_id ].get( sel[ r ].recid, true )
min_ind = Math.min( ind, min_ind )
}
if ( w2ui[ grd_obj.grid_id ].total > 0 )
{
var ind = w2ui[ grd_obj.grid_id ].prevRow( min_ind )
var rcd = w2ui[ grd_obj.grid_id ].records[ ind ]
grd_obj.grid_setRec = rcd[ grd_obj.grid_table.grid_key ]
}
}
})
В событии load загрузить это значение:
w2ui[ grd_obj.grid_id ].on( 'load', function( event )
{
event.onComplete = function()
{
if ( grd_obj.grid_setRec != '' )
{
reload_callBack( grd_obj, grd_obj.grid_setRec )
grd_obj.grid_setRec = ''
}
}
})
функция reload_callBackЯ уже сегодня использую как reload событие обратного вызова, затем добавляю новую запись в сетку.
function reload_callBack( grd_obj, rcd_id )
{
setTimeout( function ()
{
w2ui[ grd_obj.grid_id ].selectNone()
w2ui[ grd_obj.grid_id ].select( { recid: rcd_id, column: 0 } )
var ind = w2ui[ grd_obj.grid_id ].get( parseInt( rcd_id ), true )
w2ui[ grd_obj.grid_id ].scrollIntoView( ind )
}, 100 )
}
Теперь все работает так, как я хотел ...:)