如何正确显示嵌套数据

时间:2013-05-16 19:05:50

标签: c# asp.net

我在asp.net C#工作,我很难搞清楚如何解决问题。我有一个包含公司信息的数据库。我想以下列方式在网站上发布此内容:


国家/地区名称


(如果同一国家/地区有多家公司,则一行显示2套)

公司名称:标签------------------------------------ - 公司名称:标签

地址:标签------------------------------------- ---------- 地址:标签



国家/地区名称


公司名称:标签

地址:标签


等...

所以为了解决这个问题,我开始使用:

 DataGrid1.DataSource = Database.QueryTable(string.Format("select * from (myTable) group by country"));
 DataGrid1.DataBind();



protected void DataGrid1_ItemDataBound(object sender, DataGridItemEventArgs e) {

if (e.Item.ItemType != ListItemType.AlternatingItem && e.Item.ItemType != ListItemType.Item)
return;

DataRowView drItem   = (DataRowView)e.Item.DataItem;
int countryId        = Convert.ToInt32(drItem[Common.Data.Reseller.Constants.countryid]);
Label lblAddress     = (Label)e.Item.FindControl("lblAddress");
Label lblComanyName  = (Label)e.Item.FindControl("lblComanyName");
Label lblCountryName = (Label)e.Item.FindControl("lblCountryName");
DataRow drCountry    = Database.QueryRow(Common.Data.Country.Get.CountryByID(countryId));

DataTable dt = Database.QueryTable(string.Format("select * from (myTable) order by countryid"));

lblCountryName.Text = drCountry[Common.Data.Country.Constants.countryName].ToString(); 
foreach (DataRow dr in dt.Rows) {
  if (Convert.ToInt32(dr[Common.Data.Reseller.Constants.countryid]).Equals(countryId)) {

等......我在“if”语句中列出了所有信息。

所以我希望有人明白这不会得到我想要的结果。在做了一些研究后,我很难过如何继续。我是否使用嵌套的gridViews或转发器,或者我还应该考虑其他的东西。我只是希望能指出正确的方向,以便我知道我应该研究什么。

1 个答案:

答案 0 :(得分:0)

我认为你应该使用嵌套的ListView。我有同样的问题,我试图做那样的事情:

enter image description here

两个框是事件,里面的行是参与的人。我知道它不在同一条线上,但你应该能够做到。我已经回答了一个问题Nested listview

希望这会对你有所帮助,vinc。