Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Pessoal boa tarde! Tenho meu Gridview1 com um template field desta maneira:
> <asp:TemplateField HeaderText="tbProduto" SortExpression="tbProduto"> <EditItemTemplate>
<asp:TextBox ReaDOnly="false" **ID="txtProduto" **runat="server" Text='<%# Bind("tbProduto") %>'></asp:TextBox>
</EditItemTemplate>
<ItemTemplate>
<asp:Label ID="Label2" runat="server" Text='<%# Bind("tbProduto") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
* Preciso recuperar na próxima tela os dados digitados neste campo pra dar um update mas nem com reza braba to conseguindo! Estou começando a programar com .net não tenho muita experiência
Preciso por obséquio de um exemplo de como recuperar em vb este campo, vi alguns exemplos em C#, tentei converter pra vb e não obtive sucesso!
Preciso de algo do tipo:
Dim Produto as String = GridView1.txtProduto.Text
Mas não estou conseguindo acertar!A biblioteca não acha este campo txt dentro do template field só fora!
Muito obrigado!
Vagner
Oi Quintelab! Então..na próxima tela eu digo chamar o ".vb" que irá resgatar o valor deste campo!
Eu já consegui funcionar o delete onde com a linha abaixo eu consigo pegar o id do produto no banco pra mandar deletar:
IdProd = GridView1.DataKeys(e.RowIndex)("IdProd").ToString()
O evento update do grid você quer dizer aquele modo gráfico tipo arrastando o objeto e habilitar o update mode? assim eu sei fazer já, mas o que quero fazer é funcionar via código.
Já consegui habilitar o update mode via código desta forma no .vb
Protected Sub GridView1_RowEditing(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewEditEventArgs) Handles GridView1.RowEditing
GridView1.EditIndex = e.NewEditIndex
CarregaGrid()
End Sub
Agora o que "tá pegando" é conseguir resgatar os dados digitados no campo template field pra executar o update!
Tentei a linha abaixo mas o .vb não retorna nada! Como uma coisa que era pra ser relativamente fácil pode se tornar tão difícil?
Linha de Código que estou usando sem sucesso:
Dim CampoProduto as String = GridView1.Rows(e.RowIndex).Cells(2).Text.ToString()
Muito obrigado, abraço!
Assim como você tem o evento GridView1_RowEditing. Você precisa do evento GridView1_RowUpdating para gravar. De uma olhada:
http://www.aspdotnetcodes.com/GridView_Insert_Edit_Update_Delete.aspx
Abraços...
Valeu Quintelab! Só mais uma coisa pra fechar!
Utilizando o exemplo desta fonte que você me passou:
protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e) {
TextBox txtName = (TextBox)GridView1.Rows[e.RowIndex].FindControl("txtProduto");
Tentei converter pra vb, substituindo o colchete pelos parenteses apenas e não funcionou:
protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e)
TextBox txtName = (TextBox)GridView1.Rows(e.RowIndex).FindControl("txtProduto");
Ele dá a seguinte exceção: "Argument not specified for parameter GridView of Private Property TextBox(GridView as System.Web.Ui.WebControl.GridView) As Object"
Detalhe: importei o System.Web.Ui tudo certinho.
Tentei também com um outro exemplo que eu tinha mas também não rolou! Que é este daqui:
Produto = GridView1.Rows(e.RowIndex).Cells(2).Text.ToString()
* Este ultimo aqui pelo menos não dá exceção! não acontece nada! ele não grava nada mas não dá exceção
Se tiver alguma luz aí eu agradeço!
Exemplo do código em vb.net:
http://msdn.microsoft.com/pt-br/library/system.web.ui.webcontrols.gridview.rowupdating.aspx#Y684
Lembrando que isso é só para pegar os valores, você deve fazer o código de inserção ou alteração no banco.
Abraços...
Oi Quintelab deu certo! Valeu muito obrigado!
O curioso que de início não estava dando certo, estava dando exceção no final da linha de código
Produto = (CType((row.Cells(3).Controls(0)), TextBox)).Text
Daí notei que meu campo Produto estava como "Template Field", daí foi só converter de volta pra BoundField ele funcionou!
Abraço!
Você precisa pegar na próxima tela? Isso esta errado.
Você deve usar o evento update da grid para conseguir pegar o valor que esta no textbox.
Abraços...