Ver Mensaje Individual
  #1 (permalink)  
Antiguo 28/05/2010, 08:46
franklinelias
 
Fecha de Ingreso: febrero-2007
Mensajes: 39
Antigüedad: 17 años, 2 meses
Puntos: 0
ayuda con edicion en un gridview

hola. ayuda

tengo un gridview en asp.net, lo que pasa es, tengo una plantilla para editar en dicho gridview al cual agregue un textbox para q introdusca el valor. pero cuando quiero recuperar el dato, siempre me devuelve el valor q recupera de la BD y no el nuevo valor que quiero.

el codigo del grid es:

<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False"
AutoGenerateDeleteButton="True"
DataSourceID="SqlDataSource1" Height="25px"
onrowediting="GridView1_RowEditing" Width="494px"
onrowcancelingedit="GridView1_RowCancelingEdit" BackColor="White"
BorderColor="#336666" BorderStyle="Double" BorderWidth="3px" CellPadding="4"
GridLines="Horizontal" onrowupdating="GridView1_RowUpdating" >
<FooterStyle BackColor="White" ForeColor="#333333" />
<RowStyle BackColor="White" ForeColor="#333333" />
<Columns>
<asp:CommandField ShowEditButton="True" />

<asp:TemplateField HeaderText="Descripcion">
<ItemTemplate>
<asp:Label ID="DescripcionLabel" runat="server"
Text='<%# Bind("descripcion") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Cantidad">
<ItemTemplate>
<asp:Label ID="cantidadLabel" runat="server" Text='<%# Bind("cantidad") %>'></asp:Label>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox ID="cantidadTextBox1" runat="server" Text='<%# Bind("cantidad") %>' ></asp:TextBox>
</EditItemTemplate>
</asp:TemplateField>

<asp:TemplateField HeaderText="numeroorden">
<ItemTemplate>
<asp:Label ID="numeroordenLabel" runat="server"
Text='<%# Bind("numeroorden") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="codigocategoria">
<ItemTemplate>
<asp:Label ID="codigocategoriaLabel" runat="server"
Text='<%# Bind("codigocategoria") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Ayuda">
<ItemTemplate>
<asp:Label ID="Label19" runat="server" Text='<%# Eval("cantidad") %>'></asp:Label>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox ID="TextBox1" runat="server" Text='<%# Bind("cantidad") %>'></asp:TextBox>
</EditItemTemplate>
</asp:TemplateField>
</Columns>
<PagerStyle BackColor="#336666" ForeColor="White" HorizontalAlign="Center" />
<SelectedRowStyle BackColor="#339966" Font-Bold="True" ForeColor="White" />
<HeaderStyle BackColor="#336666" Font-Bold="True" ForeColor="White" />
</asp:GridView>

y el metodo donde quiero recuperar es:


protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e)
{
//recuperamos la fila que estamos editando
GridViewRow fila = GridView1.Rows[e.RowIndex];
if (fila != null)
{
//inicializamos los parametros para actualizar

this.SqlDataSource1.UpdateParameters["cantidad"].DefaultValue =(fila.FindControl("cantidadTextBox") as TextBox).Text;
this.SqlDataSource1.UpdateParameters["numeroorden"].DefaultValue = (fila.FindControl("numeroordenLabel") as Label).Text;
this.SqlDataSource1.UpdateParameters["codigocategoria"].DefaultValue = (fila.FindControl("codigocategoriaLabel") as Label).Text;
//Ejecutamos la actualización
this.SqlDataSource1.Update();
//para salir del estado de edición
GridView1.EditIndex = -1;
MostrarDatos();
}
}

entonces como recuperaria ese nuevo valor que quiero actualizar?