public async Task <TreeView> OnLoadMenuItems(TreeView treeView) { var data = await _userAccessService.GetMenuAsync(); treeView.Nodes.Clear(); foreach (DataRow row in data.Rows) { var parentMenuId = Convert.ToInt32(row.ItemArray[0]); var parentTitle = row.ItemArray[1].ToString(); var moduleId = Convert.ToInt32(row.ItemArray[2]); var node = new TreeNode(); if (moduleId == 0) { node = treeView.Nodes.Add(parentMenuId.ToString(), parentTitle); } node.Nodes.Clear(); foreach (DataRow child in data.Rows) { var childModuleId = Convert.ToInt32(child.ItemArray[2]); var childMenuId = Convert.ToInt32(child.ItemArray[0]); var childTitle = child.ItemArray[1].ToString(); if (childModuleId != 0) { if (childModuleId == parentMenuId) { node.Nodes.Add(childMenuId.ToString(), childTitle); } } } } return(treeView); }