diogom Posted May 27, 2013 at 04:02 PM Report #509215 Posted May 27, 2013 at 04:02 PM 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;
legd1991 Posted May 27, 2013 at 04:51 PM Report #509223 Posted May 27, 2013 at 04:51 PM (edited) Se só tiveres duas linhas só vai até ao 1 A primeira linha é 0, a segunda é 1 e assim por aí fora Edited May 27, 2013 at 04:52 PM by legd1991
diogom Posted May 27, 2013 at 04:53 PM Author Report #509225 Posted May 27, 2013 at 04:53 PM Se só tiveres duas linhas só vai até ao 1 pois, mas tenho mais. Alterei para 10, mas continua na mm DetailsViewRow row = CustomerDetailView.Rows[1];
legd1991 Posted May 27, 2013 at 04:55 PM Report #509226 Posted May 27, 2013 at 04:55 PM Mete aqui o teu código
nelsonr Posted May 27, 2013 at 04:57 PM Report #509228 Posted May 27, 2013 at 04:57 PM Algo assim? foreach(DetailsViewRow row in CustomerDetailView.Rows) { id = row.Cells[0].Text; nome = row.Cells[1].Text; // ... }
legd1991 Posted May 27, 2013 at 05:01 PM Report #509230 Posted May 27, 2013 at 05:01 PM Estás a dizer que nas colunas só consegues apanhar os valores das duas primeiras?
diogom Posted May 27, 2013 at 05:05 PM Author Report #509231 Posted May 27, 2013 at 05:05 PM 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
legd1991 Posted May 27, 2013 at 05:12 PM Report #509236 Posted May 27, 2013 at 05:12 PM Põe um breakpoint aí e vê quantas cells tem
legd1991 Posted May 28, 2013 at 08:42 AM Report #509347 Posted May 28, 2013 at 08:42 AM 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(); }
diogom Posted May 28, 2013 at 08:45 AM Author Report #509349 Posted May 28, 2013 at 08:45 AM 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?
legd1991 Posted May 28, 2013 at 08:46 AM Report #509350 Posted May 28, 2013 at 08:46 AM Que lado direito?
diogom Posted May 28, 2013 at 08:49 AM Author Report #509351 Posted May 28, 2013 at 08:49 AM Que lado direito? o lado do 1, ola, 12,....
legd1991 Posted May 28, 2013 at 08:53 AM Report #509352 Posted May 28, 2013 at 08:53 AM O nome, idade, ect não são o nome dasc colunas?
diogom Posted May 28, 2013 at 08:56 AM Author Report #509354 Posted May 28, 2013 at 08:56 AM O nome, idade, ect não são o nome dasc colunas? No exemplo tem 2 colunas e 5 linhas. Eu quero ir buscar os valores na 2 coluna e em todas as linhas.
legd1991 Posted May 28, 2013 at 08:59 AM Report #509357 Posted May 28, 2013 at 08:59 AM É sempre cell 1.
diogom Posted May 28, 2013 at 09:01 AM Author Report #509358 Posted May 28, 2013 at 09:01 AM É sempre cell 1. Mas assim só csg 1 valor. Eu quero todos
legd1991 Posted May 28, 2013 at 09:05 AM Report #509359 Posted May 28, 2013 at 09:05 AM 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.
nelsonr Posted May 28, 2013 at 09:26 AM Report #509364 Posted May 28, 2013 at 09:26 AM 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.
diogom Posted May 28, 2013 at 09:28 AM Author Report #509365 Posted May 28, 2013 at 09:28 AM 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?
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now