Usuário com melhor resposta
Datagrid (editar, atualizar e cancelar) - VS2003

Pergunta
-
Pessoal tenho um formulario de lançamento de notas que traz o ra e o nome do aluno e duas colunas para digitação das notas(nota1 e nota2), estou usando a coluna para editar, atualizar e cancelar, porem isso é feito registro a registro e funciona OK. Mas gostaria de dar mais agilidade ao formulario, criando um botão unico chamado por exemplo lançar nota, que iria "abrir" para edição as colunas de notas de todos os alunos (registros) de uma só vezes, e depois um botão salvar para salvar todas as alterações.
Não estou conseguindo fazer.
Conto com a ajuda de vocês.
Grato,
Julierme Felix - Aprendiz
Respostas
-
Oi,
Neste artigo - http://www.bufaloinfo.com.br/artigos/coluna48.asp - o exercício 4 mostra como fazer isso.
Os mesmos truques usados no artigo com a gridview também são válidos com a datagrid.
Abs,
Dennes
http://www.bufaloinfo.com.br
http://twitter.com/Dennes
Dennes - Se resolveu, classifique a mensagem, por favor - [http://www.bufaloinfo.com.br] NOVO DVD Segurança no ASP.NET : http://www.bufaloinfo.com.br/LearingSeriesSegurancaASPNET2.asp- Sugerido como Resposta Erysson Souza quarta-feira, 4 de maio de 2011 11:40
- Marcado como Resposta Julierme Felix quinta-feira, 5 de maio de 2011 19:14
-
Oi,
Para template columns, sempre use o findcontrol ao invés do text das células.
Abs,
Dennes
http://www.bufaloinfo.com.br
http://twitter.com/Dennes
Dennes - Se resolveu, classifique a mensagem, por favor - [http://www.bufaloinfo.com.br] NOVO DVD Segurança no ASP.NET : http://www.bufaloinfo.com.br/LearingSeriesSegurancaASPNET2.asp- Marcado como Resposta Julierme Felix quinta-feira, 5 de maio de 2011 19:14
-
Oi,
item.Cells(4).Text <===== Isso é string
"16" <========= Isso também.
Se deseja que sejam valores numéricos então converta para valores numéricos.
Abs,
Dennes
http://www.bufaloinfo.com.br
http://twitter.com/Dennes
Dennes - Se resolveu, classifique a mensagem, por favor - [http://www.bufaloinfo.com.br] NOVO DVD Segurança no ASP.NET : http://www.bufaloinfo.com.br/LearingSeriesSegurancaASPNET2.asp- Marcado como Resposta Julierme Felix quinta-feira, 5 de maio de 2011 19:14
Todas as Respostas
-
Oi,
Neste artigo - http://www.bufaloinfo.com.br/artigos/coluna48.asp - o exercício 4 mostra como fazer isso.
Os mesmos truques usados no artigo com a gridview também são válidos com a datagrid.
Abs,
Dennes
http://www.bufaloinfo.com.br
http://twitter.com/Dennes
Dennes - Se resolveu, classifique a mensagem, por favor - [http://www.bufaloinfo.com.br] NOVO DVD Segurança no ASP.NET : http://www.bufaloinfo.com.br/LearingSeriesSegurancaASPNET2.asp- Sugerido como Resposta Erysson Souza quarta-feira, 4 de maio de 2011 11:40
- Marcado como Resposta Julierme Felix quinta-feira, 5 de maio de 2011 19:14
-
-
Olá Dennes
O link que vc passou ajudou bastante, mas agora estou econtrando um problema no item DataGrid1_ItemDataBound para a coluna de total da a seguinte mensagem:
a coluna esta como templatecolumn
Seqüência de entrada não estava em um formato incorreto.
segue o codigo
Private Sub DataGrid1_ItemDataBound(ByVal sender As Object, ByVal e As DataGridItemEventArgs) Handles DataGrid1.ItemDataBound Dim _total As Double Dim _total1 As Double Select Case e.Item.ItemType Case ListItemType.Item, ListItemType.AlternatingItem _total += CType(e.Item.Cells(2).Text, Double) _total1 += CType(e.Item.Cells(3).Text, Double) Dim tot As Double tot = (_total + _total1) e.Item.Cells(4).Text = tot.ToString End Select End Sub
Julierme Felix - Aprendiz -
Oi,
Para template columns, sempre use o findcontrol ao invés do text das células.
Abs,
Dennes
http://www.bufaloinfo.com.br
http://twitter.com/Dennes
Dennes - Se resolveu, classifique a mensagem, por favor - [http://www.bufaloinfo.com.br] NOVO DVD Segurança no ASP.NET : http://www.bufaloinfo.com.br/LearingSeriesSegurancaASPNET2.asp- Marcado como Resposta Julierme Felix quinta-feira, 5 de maio de 2011 19:14
-
A questão do total resolvei usei o codigo abaixo
Function CalculaTotal(ByVal inota01, ByVal inota02) As String CalculaTotal = String.Format(inota01 + inota02) End Function
e na tag do textbox coloquei
<%# CalculaTotal(Container.DataItem("nota01"), Container.DataItem("nota02"))%>
mas agora estou querendo colocar uma condição na coluna de resultado se total for maior que 16,8 aprovado menor recuperação.
estou colocando o codigo no DataGrid1_ItemDataBound
For Each item As DataGridItem In Me.DataGrid1.Items If item.ItemType = ListItemType.Item OrElse item.ItemType = ListItemType.AlternatingItem Then Dim result As Label result = DirectCast(item.Cells(5).FindControl("lblresult"), Label) If item.Cells(4).Text > "16" Then result.Text = "aprovado" Else result.Text = "recuperação" End If End If Next
mas é como se le-se a coluna do total como string pois na coluna de resultado só aparece recuperação independente do valor que esteja na coluna total.
devo estar fazendo algo ou tudo errado, mas não estou encontrando a forma correta.
Julierme Felix - Aprendiz -
Oi,
item.Cells(4).Text <===== Isso é string
"16" <========= Isso também.
Se deseja que sejam valores numéricos então converta para valores numéricos.
Abs,
Dennes
http://www.bufaloinfo.com.br
http://twitter.com/Dennes
Dennes - Se resolveu, classifique a mensagem, por favor - [http://www.bufaloinfo.com.br] NOVO DVD Segurança no ASP.NET : http://www.bufaloinfo.com.br/LearingSeriesSegurancaASPNET2.asp- Marcado como Resposta Julierme Felix quinta-feira, 5 de maio de 2011 19:14
-
Valeu dennes... As vezes olhamos e mesmo assim as coisas passam desapercebidas, agora deu certo
usei o codigo abaixo
For Each item As DataGridItem In Me.DataGrid1.Items If item.ItemType = ListItemType.Item OrElse item.ItemType = ListItemType.AlternatingItem Then Dim n1 As TextBox n1 = DirectCast(item.Cells(2).FindControl("txtn1"), TextBox) Dim n2 As TextBox n2 = DirectCast(item.Cells(3).FindControl("txtn2"), TextBox) Dim result As Label result = DirectCast(item.Cells(5).FindControl("lblresult"), Label) Dim valor As Double valor = (CType(n1.Text, Double) + CType(n2.Text, Double)) If valor >= CType("16,8", Double) Then result.Text = "aprovado" Else result.Text = "recuperação" End If End If Next
Julierme Felix - Aprendiz