الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

tree view , list view relation ship

مغلق
بدأه ADeveloper في 19 أبريل 2005 · 0 رد · 511 مشاهدة · في Microsoft Visual C#.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1

السلام عليكم

قمت بعمل برنامج صغير عبارة عن تطبيق يقرأ من ملف xml البيانات المخزنة به و يقوم بعرض الكود الوظيفي في treeView Control

و المفترض انه حين اختار الكود يقوم بعرض البيانات في الListView Control

و لكن هذا لا يحدث :(

سأرفق الكود و ارجو منكم مساعدتي في عمل debug

هذي الدالة تعرض الكود في ال treeview

protected void populateTreeView()
  {
 	 statusBar1.Text =" Refreshing Employees Codes, Please Wait...";
 	 this.Cursor =  Cursors.WaitCursor;
 	 treeView1.Nodes.Clear();
 	 tvRootNode = new TreeNode("Employees Code");
 	 this.Cursor = Cursors.Default;
 	 treeView1.Nodes.Add(tvRootNode);
 	 TreeNodeCollection nodeCollect = tvRootNode.Nodes;
 	 string val ="";
 	 XmlTextReader reader = new XmlTextReader(@"C:\Documents and Settings\Administrator.MOSAAD\My Documents\Visual Studio Projects\Employee Records App\EmpRec.xml");
 	 reader.MoveToElement();
 	 try

 	 {
    while ( reader.Read())
    {
   	 if ( reader.HasAttributes && reader.NodeType == XmlNodeType.Element)
   	 {
      reader.MoveToElement();
      reader.MoveToElement();
      reader.MoveToAttribute("Id");
      val=reader.Value;
      reader.Read();
      reader.Read();
      if(reader.Name == "Dept.")
      {
     	 reader.Read();
      }
      TreeNode EcodeNode = new TreeNode(val);
      nodeCollect.Add(EcodeNode);
   	 

   	 }
   	 statusBarPanel1.Text = " Click on Employee Code to see the record";
    }
 	 }
 	 catch ( XmlException e)
 	 {
    MessageBox.Show( " Exception : "+ e.Message);
 	 }
  }

و هذي تملا الكولمنز في الlistview

protected void initializeListControl()
  {
  
 	 listView1.Clear();
 	 listView1.Columns.Add("Employee Name ",255,HorizontalAlignment.Left);
 	 listView1.Columns.Add("Date Of Join ",70,HorizontalAlignment.Right);
 	 listView1.Columns.Add("Grade",105,HorizontalAlignment.Left);
 	 listView1.Columns.Add("Salary ",105,HorizontalAlignment.Left);

  }

و الاخيرة المفنرض انها تملا الlistview ببيانات الكود الوظيفي المختار

protected void populateListView(TreeNode currNode)
  {
 	 initializeListControl();
 	 XmlTextReader listViewReader = new XmlTextReader(@"C:\Documents and Settings\Administrator.MOSAAD\My Documents\Visual Studio Projects\Employee Records App\EmpRec.xml");
 	 listViewReader.MoveToElement();
 	 while ( listViewReader.Read())
 	 {
    string nodeName;
    string nodePath;
    string name;
    string dateOfJoin;
    string grade;
    string salary;
    string [] itemsArray = new string[4];
    listViewReader.MoveToFirstAttribute();
    nodeName =  listViewReader.Value;
    nodePath = currNode.FullPath.Remove(0,17);
    if ( nodePath == nodeName)
    {
   	 ListViewItem lvi;
   	 listViewReader.MoveToNextAttribute();
   	 name = listViewReader.Value;
   	 lvi = listView1.Items.Add(name);
   	 listViewReader.Read();
   	 listViewReader.Read();
   	 listViewReader.MoveToFirstAttribute();
   	 dateOfJoin = listViewReader.Value;
   	 lvi.SubItems.Add(dateOfJoin);
   	 listViewReader.MoveToNextAttribute();
   	 grade = listViewReader.Value;
   	 lvi.SubItems.Add(grade);
   	 listViewReader.MoveToNextAttribute();
   	 salary = listViewReader.Value;
   	 lvi.SubItems.Add(salary);
   	 listViewReader.MoveToNextAttribute();
   	 listViewReader.MoveToElement();
   	 listViewReader.ReadString();
   	 

    }

 	 }
  }

و قمت باضافة هذا الكود للحدث الاتي

private void treeView1_AfterSelect(object sender, System.Windows.Forms.TreeViewEventArgs e)
  {
    TreeNode currNode = e.Node;
 	 if ( tvRootNode == currNode)
 	 {
    initializeListControl();
    statusBarPanel1.Text = " Double Click Employee Records .. ";
    return;
 	 }
 	 else 
 	 {
    statusBarPanel1.Text = " Click Employee code to view Individual Record ...";

 	 }
 	 populateListView(currNode);
 	 

  }

بالاضافة الي هذا الكود في ال Page_Load

private void EmployeeRecordsForm_Load(object sender, System.EventArgs e)
  {
 	 populateTreeView();
 	 initializeListControl();
 	 
  }

هذا الموضوع مغلق.

مواضيع مشابهة