Usuário com melhor resposta
Sub-DataGrid

Pergunta
-
Boa tarde sei o jogo do Brasil é daqui a pouco e posso estar atrapalhando..mas é que até as duas tenho q trampa faze o q?!rsrs
Enfim o que eu preciso fazer agora é ao exibir os dados em dataGrid, se o usuário der dois cliques em determinada linha, exibirei um subDatagrid abaixo dessa linha exibindo dados de uma campo ligado ao dado...Bom pesquisei como sub data grid, mas não encontrei nada, e sinceramente não sei o nome disso...se alguém puder da um ponto de start pelo menos...estou usando Forms..
E vamo que vamo BRASIL!!!!
Respostas
Todas as Respostas
-
Tamires, boa noite...
Abrir linhas abaixo você não vai conseguir ou dificilmente vai conseguir recorrendo a famosa "POG" (kkk), pois são tipos de dados diferentes em cada um dos grids, uma solução seria criar um grid dinâmico conforme a linha que você clicar, então fiz um código de exemplo, no caso só veja a melhor posição para criar o Grid, no exemplo crio conforme a posição do mouse no grid, espero que tenha ajudado e que bom que ganhamos a primeira e acertei o resultado no bolão no trabalho kkkk
public partial class Form1 : Form { public Form1() { InitializeComponent(); } List<Jogadores> jogadoresObj; private void Form1_Load(object sender, EventArgs e) { jogadoresObj = new List<Jogadores> { new Jogadores { Numero=10, Nome = "Neymar", Posicao = "Atacante" }, new Jogadores { Numero=2, Nome = "Dani Alves", Posicao = "Lateral Direito" }, new Jogadores { Numero=3, Nome = "Thiago Silva", Posicao = "Zagueiro" }, new Jogadores { Numero=9, Nome = "Fred", Posicao = "Atacante" }, new Jogadores { Numero=11, Nome = "Oscar", Posicao = "Meia" }, new Jogadores { Numero=8, Nome = "Paulinho", Posicao = "Volante" } }; dataGridView1.DataSource = jogadoresObj; } DataGridView dataGridViewMenu; void CriarDataGrid(int x, int y, int num) { if (dataGridViewMenu != null) dataGridViewMenu.Dispose(); dataGridViewMenu = new DataGridView(); ((System.ComponentModel.ISupportInitialize)(dataGridViewMenu)).BeginInit(); dataGridViewMenu.SuspendLayout(); dataGridViewMenu.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; dataGridViewMenu.Location = new System.Drawing.Point(x, y); dataGridViewMenu.Name = "dataGridViewMenu"; dataGridViewMenu.Size = new System.Drawing.Size(300,100); dataGridViewMenu.TabIndex = 1; dataGridView1.Controls.Add(dataGridViewMenu); dataGridViewMenu.DataSource = jogadoresObj.Where(i => i.Numero == num).ToList(); } private void dataGridView1_CellMouseDoubleClick(object sender, DataGridViewCellMouseEventArgs e) { CriarDataGrid(e.Location.X, e.Location.Y, (int)dataGridView1.Rows[e.RowIndex].Cells[0].Value); } } class Jogadores { public int Numero { get; set; } public string Nome { get; set; } public string Posicao { get; set; } }
- Editado Diego de Oliveira Neves quinta-feira, 12 de junho de 2014 23:14
-
Acho q vc não entendeu o que preciso fazer..seguindo seu exemplo eu ao clicar em neymar por exemplo, deveria aparecer em baixo dele a classe timesQueJogou que está relacionada com a classe jogadores daí iria aparecer Santos - 2009 a 2012 e em outra linha Barcelona 2013 a 2014...se clicasse em outro jogador deveria desaparecer a do neymar e aparecer a do outro jogador...
-
Tamires, na verdade eu entendi, é que fiz um select na mesma classe simulando uma tabela afim de exemplo, no método CriarDataGrid recebe o numero da camisa, no seu caso você poderia substituir por um id de jogador e com esse id ir até o banco na tabela timesQueJogou e buscar uma lista de times e da mesma forma que fiz, popular o segundo DataGridView...entendeu?
- Editado Diego de Oliveira Neves sexta-feira, 13 de junho de 2014 14:03
-
-