0

我不知道该怎么做。目前,在第一个 gridview中,是成员有权访问的组列表。第二个 gridview绑定到一个表,该表包含每种类型的组的列表,并具有一个添加按钮,可将其添加到第一个 gridview 并更新一个表,将该组添加到成员中。

这就是我想要做的:

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

4

2 回答 2

0

我会在数据库端完成所有工作。第一个的数据源是:

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

然后您的添加按钮在表中插入适当的行并重新查询两个网格。

于 2010-09-24T21:11:27.060 回答
0

您可以简单地更改数据集,然后 .AcceptChanges 并重新绑定。这将确保数据将在屏幕上更新,而无需实际将其推送到数据库。

伪示例:

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
于 2010-10-16T00:24:05.170 回答