如何删除datagrid中的一行

How to delete a row in datagrid

如何删除数据网格中的一行。我正在使用以下代码,但它不起作用(前两行有效,第三行无效)我如何更改我的代码。

put the dgHilitedLines of group "DGP"  into theLine
   answer theLine
   DeleteLine theLine

您是否尝试过使用索引而不是行?

put the dgHilitedIndex of me into theIndex 
DeleteIndex theIndex

该行始终是当前显示顺序,比如

一个=1

B = 2

C=3

因此,如果删除第2行,下一行C将成为第2行。这通常有点问题。

删除行后:

一个=1

C=2

另一方面,索引是在您填充数据网格时分配的,并且无论您如何排序,一行都保持不变。这样您就可以始终识别该行

有索引:

一个=1

乙=2

C=3

删除第 2 行后:

一个=1

C=3

如果您在 DataGrid 之外执行此操作,则需要使用 Dispatch 命令删除 DataGrid 中的行。例如。在数据网格外有一个按钮。

on mouseUp
   put the dgHilitedLines of group "DGP"  into theLine
   answer "The selected line var is : " & theLine
   dispatch "deleteline" to group "DGP" with theLine  
   put the result into tDeleteresult
   if tDeleteresult is not empty 
   then 
      answer "There has been a problem deleting the line with message: "&tDeleteresult
   else
      answer "Line Deleted"
   end if
end mouseUp

作为练习,我总是明目张胆地做这种事情。 LC 内部的工具和分析比 DG 本身更易于访问和强大。

总的来说:

  get the dgData of group "yourDG"
  delete line whatever of it
  set the dgData of group "yourDG" to it

克雷格·纽曼

与 MrCoolLion 相同的答案,更简洁:

put the dgHilitedLines of group "DataGrid" into theLineNo
dispatch "deleteline" to group "DataGrid" with  theLineNo