首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >删除后的w2ui网格选择行

删除后的w2ui网格选择行
EN

Stack Overflow用户
提问于 2019-10-06 22:53:44
回答 1查看 275关注 0票数 0

在w2ui网格中,我想在删除下面的一条线后选择网格线。下面是我的javascript代码:

代码语言: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 } )
         }
      }
   })

我找不到如何在删除后重新匹配“重新加载”...调试我所看到的,在"after“事件中,.select()正在工作,并且可以看到所需的记录被选中。但是,据我所知,“删除”触发器“重新加载”网格和矿山选择消失... :(

如何解决这个问题?

服务器端数据库(mysql+php)。

先谢谢你...

已编辑(已解决):

找到解决方案了。不确定这是不是好的,但它是有效的..。做了类似的事情:在自己的网格对象中添加了"grid_setRec“参数。然后在"delete“事件中分配这个值

代码语言:javascript
复制
   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“事件中:

代码语言:javascript
复制
   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函数作为“重载”事件回调,然后将新记录添加到网格中。

代码语言:javascript
复制
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 )
}

现在它按照我想要的那样工作了... :)

EN

回答 1

Stack Overflow用户

发布于 2019-10-07 23:59:35

解决了这个问题,添加了自己的变量来重新加载。"Delete“事件触发"load”事件。在这里,我看到是否需要使用回调函数重新选择...

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58258435

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档