Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

asp.net

Pegar valor do TextBox num datagrid na edição

Recommended Posts

Tenho o datagrid abaixo.

 

<asp:DataGrid DataKeyField="codigo" BorderColor="#333333" CellPadding="2" AutoGenerateColumns="false" OnPageIndexChanged="dt_selecionado" OnDeleteCommand="dt_apagar" OnEditCommand="dt_editar" OnCancelCommand="dt_cancelar" OnUpdateCommand="dt_atualizar" HeaderStyle-BackColor="#666666" HeaderStyle-Font-Bold="true" HeaderStyle-ForeColor="#D4D4D4" AlternatingItemStyle-BackColor="#CCCCCC" Font-Names="Verdana, Tahoma, Arial" Font-Size="10" GridLines="vertical" ID="Dt_resultado" runat="server" ShowFooter="false" ShowHeader="true" Width="500">

<columns>

<asp:BoundColumn DataField="Nome" HeaderText="Nome"></asp:BoundColumn>

<asp:BoundColumn DataField="Sobrenome" HeaderText="Sobrenome"></asp:BoundColumn>

<asp:BoundColumn DataField="ddd_fone" HeaderText="DDD"></asp:BoundColumn>

<asp:BoundColumn DataField="fone" HeaderText="Telefone"></asp:BoundColumn>

<asp:BoundColumn DataField="celular" HeaderText="Celular"></asp:BoundColumn>

<asp:EditCommandColumn EditText="Editar" CancelText="Cancelar" UpdateText="Ok" HeaderText="Editar"></asp:EditCommandColumn>

<asp:buttonColumn HeaderText="Apagar" Text="X" CommandName="Delete"></asp:buttonColumn>

</columns>

</asp:DataGrid>

 

Quando clico para editar o registro, ele me abre o textbox para inserir o novo valor, através da sub abaixo

 

Sub dt_editar(obj as Object, e as DataGridCommandEventArgs)

dt_resultado.EditItemIndex = e.item.ItemIndex

dt_resultado.DataBind()

end sub

 

ai ele me habilita os botões de atualizar o cancelar, quando eu clico no botão de atualizar tenho que pegar o valor novo digitado, mas como faço isto? A função de atualização está assim:

 

Sub dt_atualizar(Obj as Object, e as DataGridCommandEventArgs)

Dim novonome, novosobrenome, novoddd, novotelefone, novocelular as textbox

Dim indice as Integer

indice=dt_resultado.DataKeys.item(Cint(e.item.itemindex))

novonome = e.item.cells(1).controls(0)

atualizando.text=novonome.text

Dim sql_atualiza as String ="Update cliente Set nome='"& novonome.text &"' where codigo= "& indice.ToString

executa_sql(sql_atualiza)

dt_resultado.EditItemIndex=-1

carrega_cliente_adm()

end sub

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá Tudo Bem? Estou colocando os codigos abaixo:***Este seria colocado no Html<EditItemTemplate><asp:ImageButton id="Imagebutton3" imageurl="../images/Altera.gif" RUNAT="server" FORECOLOR="#000066"CommandName="Update"></asp:ImageButton><asp:ImageButton id="Imagebutton4" imageurl="../images/icoDeletar.gif" RUNAT="server" FORECOLOR="#000066"CommandName="Cancel"></asp:ImageButton></EditItemTemplate>********Editar Rows**********Private Sub dgR_EditCommand(ByVal source As Object, ByVal e As System.Web.UI.WebControls.DataGridCommandEventArgs) Handles dgR.EditCommand dgR.EditItemIndex = e.Item.ItemIndex dgR.DataSource = ds ou dr 'Aqui passa o nome do seu dataset/datareader dgR.DataBind()End Sub********Atualizar*********Private Sub dgR_UpdateCommand(ByVal source As Object, ByVal e As System.Web.UI.WebControls.DataGridCommandEventArgs) Handles dgR.UpdateCommand viewstate("scdr") = SF.PDS("dsx").Tables(0).Rows(0)("CDR") viewstate("snome") = DirectCast(e.Item.Cells(2).Controls(0), TextBox).Text 'e.Item.Cells(2).Text viewstate("scde") = DirectCast(e.Item.Cells(1).Controls(0), TextBox).Text viewstate("lstNTag") = DirectCast(e.Item.Cells(2).Controls(0), TextBox).Text viewstate("lstETag") = DirectCast(e.Item.Cells(1).Controls(0), TextBox).Text CriaLista() dgR.EditItemIndex = -1 dgR.DataSource = SF.PDV("dvX") dgR.DataBind() End Sub********Colocar TextBox**********Private Sub dgR_ItemDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.DataGridItemEventArgs) Handles dgR.ItemDataBound If e.Item.ItemType = ListItemType.EditItem Then e.Item.Cells(0).Controls(0).Visible = False e.Item.Cells(3).Text = DirectCast(e.Item.Cells(3).Controls(0), TextBox).Text e.Item.Cells(4).Text = DirectCast(e.Item.Cells(4).Controls(0), TextBox).Text CType(e.Item.Cells(1).Controls(0), TextBox).Width = Unit.Pixel(25) CType(e.Item.Cells(2).Controls(0), TextBox).Width = Unit.Percentage(100) End IfEnd Sub**************Espero poder ter ajudado!

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.