Foros del Web » Programación para mayores de 30 ;) » .NET »

Actualizar datos en un DataGrid

Estas en el tema de Actualizar datos en un DataGrid en el foro de .NET en Foros del Web. Hola a todos estoy trabajando con WebForms en C#. Estoy utilizando una etiqueta EditCommandColumn dentro de un DataGrid, sin embargo la caja de texto que ...
  #1 (permalink)  
Antiguo 18/04/2005, 14:54
 
Fecha de Ingreso: septiembre-2004
Mensajes: 217
Antigüedad: 19 años, 7 meses
Puntos: 0
Actualizar datos en un DataGrid

Hola a todos estoy trabajando con WebForms en C#.

Estoy utilizando una etiqueta EditCommandColumn dentro de un DataGrid, sin embargo la caja de texto que utiliza para modificar los datos es muy pequeña, alguien sabe como hacerla mas larga (la caja de texto) ya que el tamaño que pone por default no me es suficiente para algunos campos que debo modificar ????

Espero me puedan ayudar, se los agradesco de ante mano ...
  #2 (permalink)  
Antiguo 18/04/2005, 15:05
Avatar de Developer9
(Desactivado)
 
Fecha de Ingreso: abril-2005
Ubicación: Mi Ecuador del alma
Mensajes: 4.196
Antigüedad: 19 años
Puntos: 47
Hola bebe... Al DataGrid le puedes hacer clic derecho y elije la opcion Edit Template y elije que columna de tipo Template quieres modificar. Alli puedes hacer mas grande el textbox, e incluso puedes incluir algun requerid field validator para cuando hagas clic en update el validador se dispare si es que no has ingresado nada en el campo texto. Por ultimo cuando hayas modificado el tamaño del textbox le haces clic derecho y haces clic en End Template Editing
  #3 (permalink)  
Antiguo 30/04/2005, 15:20
 
Fecha de Ingreso: febrero-2005
Mensajes: 6
Antigüedad: 19 años, 2 meses
Puntos: 0
<%@ Import Namespace="System.Data.Oledb" %>
<%@ Import Namespace="System.Data" %>
<HTML>
<script language="VB" runat="server">

Dim miSqlConexion As OleDbConnection
Public CodEstado As Hashtable

Sub Page_Load(s As Object, e As EventArgs)
miSqlConexion = New OleDbConnection("Provider=Microsoft.JET.OLEDB.4.0; Data Source=C:\Inetpub\wwwroot\BDS\aspgrid.mdb")

If Not (IsPostBack)
VisualizarDatos()
DataGrid1.DataBind()
End If

CodEstado = New Hashtable()
CodEstado("CA") = 0
CodEstado("IN") = 1
CodEstado("KS") = 2
CodEstado("MD") = 3
CodEstado("MI") = 4
CodEstado("OR") = 5
CodEstado("TN") = 6
CodEstado("UT") = 7
End Sub

Public Function BuscarCodEstado(NombreEstado As String) As Integer

If CodEstado(NombreEstado) <> Nothing
Return CInt(CodEstado(NombreEstado))
Else
Return 0
End If
End Function

Sub DataGridEdit(s As Object, e As DataGridCommandEventArgs)

DataGrid1.EditItemIndex = CInt(e.Item.ItemIndex)
VisualizarDatos()
DataGrid1.DataBind()
End Sub

Sub DataGridCancel(s As Object, e As DataGridCommandEventArgs)

DataGrid1.EditItemIndex = -1
VisualizarDatos()
DataGrid1.DataBind()
End Sub

Sub DataGridUpdate(s As Object, e As DataGridCommandEventArgs)
miSqlConexion = New OleDbConnection("Provider=Microsoft.JET.OLEDB.4.0; Data Source=C:\Inetpub\wwwroot\BDS\aspgrid.mdb")
Dim miDataSet As DataSet
Dim miSqlCommand As OleDbCommand
Dim miDAdapter As OleDbDataAdapter

'Dim SqlActualizar As String = "UPDATE Authors SET au_lname = @Apellidos, au_fname = @Nombre, phone = @Telefono, address = @Direccion, city = @Ciudad, state = @Estado, zip = @CodPostal where au_id = @Id"
'miDAdapter.UpdateCommand = new OleDbCommand("UPDATE Authors SET au_lname = Apellidos, au_fname = Nombre, phone = @Telefono, address = @Direccion, city = @Ciudad, state = @Estado, zip = @CodPostal where au_id = @Id" , miSqlConexion)
miSqlCommand = New OleDbCommand("UPDATE Authors SET au_lname = @Apellidos, au_fname = @Nombre, phone = @Telefono, city = @Ciudad where au_id = @Id", miSqlConexion)

miSqlCommand.Parameters.Add(New OleDbParameter("@Id", OleDbType.VarChar, 11))
miSqlCommand.Parameters.Add(New OleDbParameter("@Apellidos", OleDbType.VarWChar, 40))
miSqlCommand.Parameters.Add(New OleDbParameter("@Nombre", OleDbType.VarWChar, 20))
miSqlCommand.Parameters.Add(New OleDbParameter("@Telefono", OleDbType.VarWChar, 12))
miSqlCommand.Parameters.Add(New OleDbParameter("@Ciudad", OleDbType.VarWChar, 20))


miSqlCommand.Parameters[1].value=((TextBox1)e.Item.Cells.Controls[0].text
miSqlCommand.Parameters[2].value=((TextBox1)e.Item.Cells.Controls[0].text
miSqlCommand.Parameters[3].value=((TextBox1)e.Item.Cells.Controls[0].text
miSqlCommand.Parameters("@Id").Value = DataGrid1.DataKeys(CInt(e.Item.ItemIndex))
' TextBox2.Text= miSqlCommand.Parameters("@Id").value

' miSqlCommand = New OleDbCommand("UPDATE Authors SET au_lname = @Apellidos, au_fname = @Nombre, phone = @Telefono, city = @Ciudad where au_id = @Id", miSqlConexion)
'Dim Cols As String() = {"Apellidos","Nombre","Telefono","Ciudad"}

'Dim I As Integer
'For I = 0 To 3

'Dim TextBox1 As TextBox
'TextBox1 = e.Item.FindControl("edit_" & Cols(I))
'Dim ColValue As String = TextBox1.Text


'If I<3 And ColValue = ""

'Mensaje.Text = "ERROR: Valores incorrectos"

'Return
'End If

' miSqlCommand.Parameters("@" & Cols(I)).Value = Server.HtmlEncode(ColValue)
'Next

'Dim DropDownList1 As DropDownList'333333333
'DropDownList1 = e.Item.FindControl("edit_Estado")
'miSqlCommand.Parameters("@Estado").Value = DropDownList1.SelectedItem.ToString()'333333333333 333

Dim CheckBox1 As CheckBox
CheckBox1 = e.Item.FindControl("edit_Contrato")

'If CheckBox1.Checked = true'33333
' miSqlCommand.Parameters("@Contrato").Value = "1"
' Else
' miSqlCommand.Parameters("@Contrato").Value = "0"
'End If'33333

miSqlCommand.Connection.Open()

Try
miSqlConexion.open()
miSqlCommand.ExecuteNonQuery()
miSqlConexion.close()
' Mensaje.Text="<b>actualizado</b><br>" '& SqlActualizar
DataGrid1.EditItemIndex = -1
'Catch Exp As OleDbException
'If Exp.Number = 2627
' Response.Write("Descripción del error : " & exp.Message)
'Mensaje.Text = "ERROR: Registro existente"
'Else
'Mensaje.Text = "ERROR: No se puede actualizar el registro"
'End If
' Finally
' DataGrid1.DataBind()
End Try

miSqlCommand.Connection.Close()
' VisualizarDatos()
' DataGrid1.DataBind()
End Sub

Sub DataGridItem(s As Object, e As DataGridItemEventArgs)
If (e.Item.ItemType = ListItemType.EditItem) Then
Dim n As Integer
For n = 0 To e.Item.Controls.Count-1
Try
If (e.Item.Controls(n).Controls(1).GetType().ToString () = "System.Web.UI.WebControls.TextBox") Then
Dim tb As TextBox
tb = e.Item.Controls(n).Controls(1)
tb.Text = Server.HtmlDecode(tb.Text)
End If
Catch

End Try
Next
End If

End Sub

Sub VisualizarDatos()

Dim miDataSet As DataSet
Dim miSqlCommand As OleDbDataAdapter
miSqlCommand = new OleDbDataAdapter("select au_id,au_lname, au_fname, phone, city from Authors", miSqlConexion)

miDataSet = new DataSet()
miSqlCommand.Fill(miDataSet, "Authors")

DataGrid1.DataSource=miDataSet.Tables("Authors").D efaultView
if not IsPostBack then
DataGrid1.DataBind()
end if
miSqlConexion.close()
End Sub

</script>
<body>
<form runat="server" ID="Form1">
<h3><font face="Verdana">Actualizar Datos en una base de datos SQL</font></h3>
<ASP:DataGrid id="DataGrid1" runat="server" Width="800px" BackColor="White" BorderColor="#CC9966" CellPadding="4" Font-Name="Verdana" Font-Size="8pt" HeaderStyle-BackColor="#aaaadd" OnEditCommand="DataGridEdit" OnCancelCommand="DataGridCancel" OnUpdateCommand="DataGridUpdate" DataKeyField="au_id" AutoGenerateColumns="False" OnItemDataBound="DataGridItem" BorderStyle="None" BorderWidth="1px" Font-Names="Verdana">
<FooterStyle ForeColor="#330099" BackColor="#FFFFCC"></FooterStyle>
<HeaderStyle Font-Bold="True" ForeColor="#FFFFCC" BackColor="#990000"></HeaderStyle>
<PagerStyle HorizontalAlign="Center" ForeColor="#330099" BackColor="#FFFFCC"></PagerStyle>
<SelectedItemStyle Font-Bold="True" ForeColor="#663399" BackColor="#FFCC66"></SelectedItemStyle>
<ItemStyle ForeColor="#330099" BackColor="White"></ItemStyle>
<Columns>
<asp:EditCommandColumn ButtonType="LinkButton" UpdateText="Update" CancelText="Cancel" EditText="Edit">
<ItemStyle Wrap="False"></ItemStyle>
</asp:EditCommandColumn>
<asp:BoundColumn DataField="au_id" SortExpression="au_id" ReadOnly="True" HeaderText="au_id">
<ItemStyle Wrap="False"></ItemStyle>
</asp:BoundColumn>
<asp:TemplateColumn SortExpression="au_lname" HeaderText="au_lname">
<ItemTemplate>
<asp:Label runat="server" Text='<%# DataBinder.Eval(Container.DataItem, "au_lname") %>' ID="Label1"/>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox runat="server" id="edit_Apellidos" Text='<%# DataBinder.Eval(Container.DataItem, "au_lname") %>'/>
</EditItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn SortExpression="au_fname" HeaderText="au_fname">
<ItemTemplate>
<asp:Label runat="server" Text='<%# DataBinder.Eval(Container.DataItem, "au_fname") %>' ID="Label2"/>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox runat="server" id="edit_Nombre" Text='<%# DataBinder.Eval(Container.DataItem, "au_fname") %>'/>
</EditItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn SortExpression="phone" HeaderText="phone">
<ItemTemplate>
<asp:Label runat="server" Text='<%# DataBinder.Eval(Container.DataItem, "phone") %>' ID="Label3"/>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox runat="server" id="edit_Telefono" Text='<%# DataBinder.Eval(Container.DataItem, "phone") %>'/>
</EditItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn SortExpression="city" HeaderText="city">
<ItemTemplate>
<asp:Label runat="server" Text='<%# DataBinder.Eval(Container.DataItem, "city") %>' ID="Label5"/>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox runat="server" id="edit_Ciudad" Text='<%# DataBinder.Eval(Container.DataItem, "city") %>'/>
</EditItemTemplate>
</asp:TemplateColumn>
</Columns>
</ASP:DataGrid>
<asp:Label id="Mensaje" runat="server">Label</asp:Label>
<asp:Label id="Label9" runat="server">Label</asp:Label>
<asp:TextBox id="TextBox1" runat="server"></asp:TextBox>
<asp:TextBox id="TextBox2" runat="server"></asp:TextBox>
</form>
</body>
</HTML>
  #4 (permalink)  
Antiguo 30/04/2005, 15:22
 
Fecha de Ingreso: febrero-2005
Mensajes: 6
Antigüedad: 19 años, 2 meses
Puntos: 0
hola tengo este codigo para actualiza un datagrid pero no al dar click al edit del datagrid modifico mis valores del registro k selectione pero al dar clik en actualizar no m actualiza nadaaaaaaaa ayudenme por favor
  #5 (permalink)  
Antiguo 02/05/2005, 08:55
Avatar de RootK
Moderador
 
Fecha de Ingreso: febrero-2002
Ubicación: México D.F
Mensajes: 8.004
Antigüedad: 22 años, 2 meses
Puntos: 50
MMm.. antes que otra cosa lo que no entiendo es porque estas metiendo codigo de vb.net y c# en la misma página..??

Cita:
vb.net

miSqlCommand.Parameters.Add(New OleDbParameter("@Id", OleDbType.VarChar, 11))
miSqlCommand.Parameters.Add(New OleDbParameter("@Apellidos", OleDbType.VarWChar, 40))
miSqlCommand.Parameters.Add(New OleDbParameter("@Nombre", OleDbType.VarWChar, 20))
miSqlCommand.Parameters.Add(New OleDbParameter("@Telefono", OleDbType.VarWChar, 12))
miSqlCommand.Parameters.Add(New OleDbParameter("@Ciudad", OleDbType.VarWChar, 20))

c# (aunque te faltan los ";")
miSqlCommand.Parameters[1].value=((TextBox1)e.Item.Cells.Controls[0].text
miSqlCommand.Parameters[2].value=((TextBox1)e.Item.Cells.Controls[0].text
miSqlCommand.Parameters[3].value=((TextBox1)e.Item.Cells.Controls[0].text
miSqlCommand.Parameters("@Id").Value = DataGrid1.DataKeys(CInt(e.Item.ItemIndex))
Tu sintaxis está incorrecta... revisala bien.

Cita:
Hola a todos estoy trabajando con WebForms en C#.
La mayor parte del code es vb.net... me llama la atencion de que comentes que estas usando c#.

Salu2
__________________
Nadie roba nada ya que en la vida todo se paga . . .

Exentrit - Soluciones SharePoint & Net
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 09:57.