动态选项卡:使用数据集添加它们并检查它们是否存在
我想动态创建一个选项卡,稍后使用数据集中的数据填充该选项卡。 在我的数据集中,我有一个名为TabId的字段。它用作后来的标题和标识(在标签视图中),用于遍历它提取的数据集。由于将来可能会有更多的选项卡,并且客户需要的解决方案至少需要尽可能多的更新,我需要动态创建它们。但问题是包含我的选项卡数据的数据集包含tabId,在迭代表格时会重复执行多次。动态选项卡:使用数据集添加它们并检查它们是否存在
例如:
Rec 1 TabId = first
Rec 2 TabId = first
Rec 3 TabId = first
Rec 4 TabId = first
Rec 5 TabId = first
Rec 6 TabId = first
Rec 7 TabId = first
Rec 8 TabId = Second
Rec 9 TabId = Second
Rec 10 TabId = Second
Rec 11 TabId = Third
Rec 12 TabId = Third
Rec 13 TabId = Third
等等...
所以基本上我知道我需要使用TabId foreach循环,但我需要每个不同的\唯一的ID只有一个选项卡。我如何迭代我的数据集并处理我的TabId的额外重复项,以便稍后可以使用它来即时创建我的选项卡。
我现在的(静态)代码:
intent = new Intent(this, typeof(Tab1));
intent.PutExtra("FormId", FormId);
intent.PutExtra("TabNum", TabId);
intent.PutExtra("EventNo", EventNo);
intent.PutExtra("Ticket", Ticket);
intent.PutExtra("DataSet", xml);
intent.AddFlags(ActivityFlags.NewTask);
// Initialize a TabSpec for each tab and add it to the TabHost
spec = TabHost.NewTabSpec(TabId); // unique per tab
spec.SetIndicator(TabId); // unique per tab
spec.SetContent(intent);
TabHost.AddTab(spec);
我希望我自己很清楚。如果有任何问题,请不要犹豫。我会尽可能提供我所能提供的信息。
使用LINQ获取不同的列表和查询的原始数据源
var tabIDs = (from DataRow dr in dataTable.Rows
select (Int32)dr["TabID"]).Distinct();
从数据集:
var tabIDs = (from DataRow dr in dataSet.Tables["tableName"].Rows
select (Int32)dr["TabID"]).Distinct();
然后依次通过您的TabID的
foreach(Int32 tabID in tabIDs){
spec = TabHost.NewTabSpec(tabID); // unique per tab
spec.SetIndicator(tabID); // unique per tab
spec.SetContent(intent);
TabHost.AddTab(spec);
}
好的,适用于DataTable,但不适用于DataSet :) 我需要在这里使用数据集。仍然感谢您的帮助。 – 2013-03-04 11:47:52
你能从数据集创建一个数据表吗?或参见编辑 – CR41G14 2013-03-04 11:53:10
'System.Data.DataTable dt = new System.Data.DataTable(“TabIdTable”);' 'dt.Columns.Add(“TabId”,Type.GetType(“System.Int32”));' 'dt.Columns.Add(“TabCaption”,Type.GetType(“System.Int32”));' 'System.Data.DataView Dv = _DataSet.Tables [0] .DefaultView;' 'System.Data。 DataTable DtD = Dv.ToTable(true,“TabId”,“TabCaption”);' 根据您提供的洞察,使用您的建议和一些进一步的搜索解决:) – 2013-03-04 12:26:35
什么与目前发生的事情以上?它只添加一个选项卡吗? – CR41G14 2013-03-04 10:49:17
目前它是静态的,因此它添加了一个选项卡。我需要根据从web服务获得的数据集中的内容动态添加它们)。 – 2013-03-04 10:52:54