Jump to content

Passar campos de detailsview para variaveis


Recommended Posts

Posted

Olá

como posso passar os campos que estão na detailsview para variáveis.

Encontrei este exemplo, mas só funciona ate ao 1.

 

DetailsViewRow row = CustomerDetailView.Rows[1]; 
String id = row.Cells[0].Text; 
String nome = row.Cells[1].Text;
Posted

Estás a dizer que nas colunas só consegues apanhar os valores das duas primeiras?

exemplo da detail view

id 1

nome ola

idade 12

ec solt

etc etc

so apanho o id e nome, se meto maior dame este erro

O argumento especificado estava fora do intervalo de valores válidos.

Nome do parâmetro: índex

Posted

Tenta assim:

foreach (DataGridViewRow dr in dataGridView.Rows)
{
   string col1 = dr.Cells["Col1"].Value.ToString();
   string col2 = dr.Cells["Col2"].Value.ToString();
   string col3 = dr.Cells["Col3"].Value.ToString();
}
Posted

Já sei qual é o problema.

exemplo:

id 1

nome ola

idade 12

ec solt

etc etc

foreach (DetailsViewRow Row in DetailsView1.Rows)

{

id = Row.Cells[1].Text.ToString();

nome = Row.Cells[0].Text.ToString();

}

id = etc

nome = etc

Como faço para ir buscar do lado direito 1 a 1 de cima para baixo?

Posted

O que podes fazer é isto:

foreach (DetailsViewRow Row in DetailsView1.Rows)
{
   string tipo = Row.Cells[0].Text.ToString();
   string valor = Row.Cells[1].Text.ToString();

   switch(tipo)
   {
  case "Id": {id= valor; break;}
  case "Nome": {Nome=valor; break;}
   }
}

Isto não é correcto ser feito assim. Mas o que tu queres, e como tens a tabela também não me parece que esteja bem.

Posted

O melhor é ires pelo debug, como já foi sugerido.

Faz um breakpoint dentro do foreach

No quickwatch, verifica o conteúdo de Row.Cells

Se mostrar 10 (como dizes acima), selecionas a nº 2 (por exemplo) e vê se é o conteúdo que pretendes

Vê na linha do quickwatch qual o código apresentado para aceder a essa valor.

Posted

O que podes fazer é isto:

foreach (DetailsViewRow Row in DetailsView1.Rows)
{
string tipo = Row.Cells[0].Text.ToString();
string valor = Row.Cells[1].Text.ToString();

switch(tipo)
{
 case "Id": {id= valor; break;}
 case "Nome": {Nome=valor; break;}
}
}

Isto não é correcto ser feito assim. Mas o que tu queres, e como tens a tabela também não me parece que esteja bem.

È mm isto, mas o 2 valor vem sem nulo e o campo está preenchido.

No case tenho de colocar o nome da linha da coluna 0?

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.