2015-11-04 80 views
0

我试图创建具有比孩子更多家长的轨道,并把主题动态列表框C#创建曲目父母依赖于儿童

我有这个ParentActivity表”

tblParentActivity

,我想使轨道取决于ParentActivity表格以列表框这样的:

Tracks in ListBox

到目前为止的代码:

private void TrackingActivity(long ParentActivityID) 
{ 

    DataTable dtActiveChild = objA.SelectActivityChild(ParentActivityID); 

     ListBox lstBox = new ListBox(); 
     lstBox.ID = "lstTrack" + ParentActivityID.ToString(); 
     lstBox.Width = 200; 
     pnlTrack.Controls.Add(lstBox); 

     for (int i = 0; i < dtActiveChild.Rows.Count; i++) 
     { 
      long ActivityChildID = Convert.ToInt64(dtActiveChild.Rows[i]["ActivityID"].ToString()); 
      string ActivityChildName = dtActiveChild.Rows[i]["ActivityName"].ToString(); 

      lstBox.Items.Add(new ListItem (ActivityChildName.ToString(),ActivityChildID.ToString())); 

      DataTable dtBrotherActivity = objA.selectBrotherActivity(ActivityChildID); 

      if (dtBrotherActivity.Rows.Count > 0) 
      {    
       TrackingActivity(ActivityChildID); 
      } 
     } 
} 

例如ParentActivityID = 1;

selectBrotherActivity是查询来获取它的另一个孩子家长

它给了我这样的分配:

| 1 | 2 3 | 4 | 7 | 9 | 10 | 7 | 9 | 10 | 6 | 8 | 9 | 10 |

其中||意味着列表框

+0

什么样的代码你有,到目前为止,你有什么卡住了? –

+1

您需要C#代码或sql的帮助才能将该数据从该表中提取出来吗?正如所发布的,这完全太模糊。 –

+0

使用C#进行跟踪,但如果我可以分配跟踪与SQL它将帮助 – Beaudeep

回答

0

好,谢谢大家,我发现它:

protected void btnCreateTrack_Click(object sender, EventArgs e) 

{ 

    ListBox lstBoxParent = new ListBox(); 
    lstBoxParent.ID = "lstTrack1"; 
    lstBoxParent.Width = 200; 
    lstBoxParent.Height = 200; 
    pnlTrack.Controls.Add(lstBoxParent); 

    TrackingActivity(1, lstBoxParent); 

} 



private void TrackingActivity(long ParentActivityID, ListBox lstBoxParent) 
{ 

    chk: 

    DataTable dtActiveChild = objWFAI.SelectActivityChild(ParentActivityID); 
    string ActivityName = objWFA.CurrentActivityName(ParentActivityID); 


    lstBoxParent.Items.Add(new ListItem(ActivityName, ParentActivityID.ToString())); 

    for (int i = dtActiveChild .Rows.Count - 1; i >= 0; i--) 
    { 
     long ActivityChildID = Convert.ToInt64(dtActiveChild .Rows[i][" ActivityID"].ToString()); 

     if (i != 0) 
     { 
      ListBox lstBoxChild = new ListBox(); 
      lstBoxChild.ID = "lstTrack" + ActivityChildID.ToString(); 
      lstBoxChild.Width = 200; 
      lstBoxChild.Height = 200; 
      pnlTrack.Controls.Add(lstBoxChild); 

      for (int p = 0; p < lstBoxParent.Items.Count; p++) 
      { 
       lstBoxChild.Items.Add(new ListItem(lstBoxParent.Items[p].Text, lstBoxParent.Items[p].Value)); 
      } 
      TrackingActivity(ActivityChildID, lstBoxChild); 
     } 
     else 
     { 
      ParentActivityID = ActivityChildID ; 

      goto chk; 
     } 
    }