Inserindo dados no DataGridView
26/05/2017
0
Boa tarde galera!
estou criando uma agenda e preciso de uma ajuda.
Tenho dois formulários, o form 1 que possui o grid da agenda com os seguintes dados (ID, HORARIO, STATUS, DATA, NOME, DT_NASCIM, MEDICO, ESPECIALIDADE) e o form 2 que possui 8 textBox para a pessoa preencher os dados para agendar um paciente.
Gostaria de saber como eu faço para quando a pessoa clicar no botão SALVAR do form 2, os dados preenchidos no textBox serem inseridos no grid do form1 ?
estou criando uma agenda e preciso de uma ajuda.
Tenho dois formulários, o form 1 que possui o grid da agenda com os seguintes dados (ID, HORARIO, STATUS, DATA, NOME, DT_NASCIM, MEDICO, ESPECIALIDADE) e o form 2 que possui 8 textBox para a pessoa preencher os dados para agendar um paciente.
Gostaria de saber como eu faço para quando a pessoa clicar no botão SALVAR do form 2, os dados preenchidos no textBox serem inseridos no grid do form1 ?
Rafaela Fernandes
Curtir tópico
+ 0
Responder
Post mais votado
27/05/2017
Boa noite Rafaela.
Bom, não sei qual a forma de dados que você está usando, se você está utilizando uma Sessão ou buscando informações diretamente do Banco de Dados para preencher o seu DataGridView.
O importante é você se atentar em sempre alimentar o seu DataGridView com uma Lista, e procurar ficar atento no nome de cada item do objeto que deverá seguir a mesma nomenclatura:
Abaixo, segue um exemplo desenvolvido em webform e utilizando sessão:
=> PASSO 1: Crie uma classe chamado CLASSE_DADOS:
public class CLASSE_DADOS
{
public int ID { get; set; }
public string NOME { get; set; }
public string HORARIO { get; set; }
public string STATUS { get; set; }
}
=> PASSO 2: No seu form 2, adicionar o código abaixo dentro da função do seu botão "Salvar":
protected void BotaoSalvar_Click(object sender, EventArgs e)
{
var vLista1 = new List<CLASSE_DADOS>();
var vDados = new CLASSE_DADOS();
vDados.NOME = InputNome.Text;
vDados.HORARIO = InputHorario.Text;
vDados.STATUS = InputStatus.Text;
var vLista = (List<CLASSE_DADOS>)Session["ListaAgenda"];
if (vLista != null)
{
vDados.ID = vLista.Count + 1;
vLista.Add(vDados);
Session["ListaAgenda"] = vLista;
}
else
{
vDados.ID = 1;
vLista1.Add(vDados);
Session["ListaAgenda"] = vLista1;
}
}
=> PASSO 3: CRIAR NO SEU FORM 1, UM MÉTODO PARA PREENCHER O SEU GRID E CHAMA-LO QUANDO QUISER NA TELA:
private void CarregaTabelaGridAgenda()
{
var vListaAgenda = (List<CLASSE_DADOS>)Session["ListaAgenda"];
TabelaAgenda.DataSource = vListaAgenda;
TabelaAgenda.DataBind();
}
OBSERVAÇÕES: É importante que as colunas do seu grid, tenha as mesmas nomenclaturas da sua lista, ou seja, utilizei a lista do objeto CASSE_DADOS que contém os itens ID, NOME, HORARIO, STATUS, logo eu terei que ter no meu grid, uma coluna para cada item deste que eu queira que seja exibido:
Segue abaixo o html do grid:
<asp:GridView ID="TabelaAgenda" runat="server" AutoGenerateColumns="False">
<Columns>
<asp:BoundField DataField="ID" HeaderText="ID" />
<asp:BoundField DataField="NOME" HeaderText="Nome" />
<asp:BoundField DataField="HORARIO" HeaderText="Horário" />
<asp:BoundField DataField="STATUS" HeaderText="Status" />
</Columns>
</asp:GridView>
Espero ter ajudado. Abs ;)
Bom, não sei qual a forma de dados que você está usando, se você está utilizando uma Sessão ou buscando informações diretamente do Banco de Dados para preencher o seu DataGridView.
O importante é você se atentar em sempre alimentar o seu DataGridView com uma Lista, e procurar ficar atento no nome de cada item do objeto que deverá seguir a mesma nomenclatura:
Abaixo, segue um exemplo desenvolvido em webform e utilizando sessão:
=> PASSO 1: Crie uma classe chamado CLASSE_DADOS:
public class CLASSE_DADOS
{
public int ID { get; set; }
public string NOME { get; set; }
public string HORARIO { get; set; }
public string STATUS { get; set; }
}
=> PASSO 2: No seu form 2, adicionar o código abaixo dentro da função do seu botão "Salvar":
protected void BotaoSalvar_Click(object sender, EventArgs e)
{
var vLista1 = new List<CLASSE_DADOS>();
var vDados = new CLASSE_DADOS();
vDados.NOME = InputNome.Text;
vDados.HORARIO = InputHorario.Text;
vDados.STATUS = InputStatus.Text;
var vLista = (List<CLASSE_DADOS>)Session["ListaAgenda"];
if (vLista != null)
{
vDados.ID = vLista.Count + 1;
vLista.Add(vDados);
Session["ListaAgenda"] = vLista;
}
else
{
vDados.ID = 1;
vLista1.Add(vDados);
Session["ListaAgenda"] = vLista1;
}
}
=> PASSO 3: CRIAR NO SEU FORM 1, UM MÉTODO PARA PREENCHER O SEU GRID E CHAMA-LO QUANDO QUISER NA TELA:
private void CarregaTabelaGridAgenda()
{
var vListaAgenda = (List<CLASSE_DADOS>)Session["ListaAgenda"];
TabelaAgenda.DataSource = vListaAgenda;
TabelaAgenda.DataBind();
}
OBSERVAÇÕES: É importante que as colunas do seu grid, tenha as mesmas nomenclaturas da sua lista, ou seja, utilizei a lista do objeto CASSE_DADOS que contém os itens ID, NOME, HORARIO, STATUS, logo eu terei que ter no meu grid, uma coluna para cada item deste que eu queira que seja exibido:
Segue abaixo o html do grid:
<asp:GridView ID="TabelaAgenda" runat="server" AutoGenerateColumns="False">
<Columns>
<asp:BoundField DataField="ID" HeaderText="ID" />
<asp:BoundField DataField="NOME" HeaderText="Nome" />
<asp:BoundField DataField="HORARIO" HeaderText="Horário" />
<asp:BoundField DataField="STATUS" HeaderText="Status" />
</Columns>
</asp:GridView>
Espero ter ajudado. Abs ;)
Allison Morais
Responder
Mais Posts
29/05/2017
Rafaela Fernandes
Allison, bom dia!
Muito obrigada pelo retorno!
O DataGrid eu criei como se fosse uma classe no c#. (PROJECT / ADD CLASS / SERVICE-BASED DATABASE).
A palavra SESSION não existe no c#, você sabe me dizer o que eu posso usar no lugar ?
Muito obrigada pelo retorno!
O DataGrid eu criei como se fosse uma classe no c#. (PROJECT / ADD CLASS / SERVICE-BASED DATABASE).
A palavra SESSION não existe no c#, você sabe me dizer o que eu posso usar no lugar ?
Responder
Clique aqui para fazer login e interagir na Comunidade :)