代码之家  ›  专栏  ›  技术社区  ›  user356808

将一行从一个gridview移动到另一个gridview

  •  0
  • user356808  · 技术社区  · 16 年前

    ,是成员有权访问的组的列表。这个 第二个网格视图

    这就是我要做的:

    当一行的Add按钮(在第二个gridview中)被单击时,它将被添加到第一个gridview中(就像现在一样),但是我也希望它从第二个gridview中消失。所以基本上,一个组应该只在第一个gridview或第二个gridview中可见,而不是在两个gridview中都可见。我的问题是我不想修改这个表,因为显然这个表包含了所有可能的组。有什么建议吗?

    2 回复  |  直到 16 年前
        1
  •  0
  •   Bill    16 年前

    我会做数据库方面的所有工作。第一个的数据源是:

    Select g.*
    From membership m
      inner join groups g on m.groupid=g.groupid
    Where m.userid = @userid
    

    Select g.*
    From groups g
    Where not exists 
      (Select 1 from membership m 
      Where m.GroupID=g.GroupID and m.userid = @userid
    

        2
  •  0
  •   jlrolin    16 年前

    您可以简单地对数据集进行更改,然后接受更改并重新绑定。这将确保数据在屏幕上更新,而不会实际推送到数据库。

    伪示例:

    Dim dt as Datatable = GetData1(strSQL.toString)
    Dim dt2 as Datatable = GetData2(strSQL.toString)
    
    Public Sub MoveRecord(ByVal dt1 as DataTable, ByVal dt2 as Datatable, ByVal index as Integer)
    
    'Record being moved '
    Dim dr as Datarow = dt.Rows(index)
    dt2.Rows.Add(dr)
    dt2.AcceptChanges
    dt.Rows.RemoveAt(index)
    dt.AcceptChanges
    
    'Bind Gridview
     Perhaps store new changes in Viewstate,
     Cache, or Session for Paging, Sorting'
    End Sub
    

    当然,这假设网格具有相同的字段。如果他们没有,你必须:

    Dim drN as DataRow - dt2.Rows.NewRow
    'Assign rows from moving datarow to new datarow'
    dt2.Rows.Add(drN)
    dt2.AcceptChanges
    
    推荐文章