none
ASPX VB 2013 Actualizar datagrid trabajando desconectado (con dataset) RRS feed

  • Pregunta

  • Buenas tardes, estoy trabajando con un datagrid las funciones de agregar, eliminar funcionan perfectamente, sin embargo la actualización de datos no, y el problema es el siguiente, cuando intento recuperar el valor de 

    Detalle = CType(gvAsientoDetalle.Rows(e.RowIndex).FindControl("txtDetalleEdit"), TextBox).Text no puedo recuperar el nuevo valor digitado, estoy trabajando con un DataSet desconectado

    a continuación el código completo del edit y update

        Protected Sub gvAsientoDetalle_RowEditing(sender As Object, e As GridViewEditEventArgs) Handles gvAsientoDetalle.RowEditing
            Try
                gvAsientoDetalle.EditIndex = e.NewEditIndex
                RefrescarGrid()
            Catch ex As Exception

            End Try
        End Sub

        Protected Sub gvAsientoDetalle_RowUpdating(sender As Object, e As GridViewUpdateEventArgs) Handles gvAsientoDetalle.RowUpdating
            Dim Detalle As New modelo.ConAsientoDetalleEdit
            Try

                Detalle.CodigoEmpresa = clsUtilites.ID_CODIGO_EMPRESA
                Detalle.NumeroAsiento = 0
                Detalle.NumeroLinea = CType(gvAsientoDetalle.Rows(e.RowIndex).FindControl("lblNumeroLineaEdit"), Label).Text
                Detalle.Referencia = CType(gvAsientoDetalle.Rows(e.RowIndex).FindControl("txtReferenciaEdit"), TextBox).Text
                Detalle.Detalle = CType(gvAsientoDetalle.Rows(e.RowIndex).FindControl("txtDetalleEdit"), TextBox).Text
                Detalle.Monto = CType(gvAsientoDetalle.Rows(e.RowIndex).FindControl("txtDebitoEdit"), TextBox).Text
                Detalle.IndicadorDebitoCredito = 1
                Detalle.TipoCambioBase = clsUtilites.ID_TIPO_CAMBIO_COMPRA
                Detalle.TipoCambioMoneda = 1
                Detalle.NumeroCuenta = CType(gvAsientoDetalle.Rows(e.RowIndex).FindControl("txtNumeroCuentaEdit"), TextBox).Text
                Detalle.CodigoCentroCosto = CType(gvAsientoDetalle.Rows(e.RowIndex).FindControl("txtCodigoCentroCostoEdit"), TextBox).Text
                Detalle.idUsuario = clsUtilites.ID_USUARIO
                _ConAsientoDetalle.Modificar(Detalle)
                gvAsientoDetalle.EditIndex = -1
                RefrescarGrid()

            Catch ex As Exception

            End Try
        End Sub

    CODIGO HTML

                            <asp:GridView ID="gvAsientoDetalle" runat="server" AutoGenerateColumns="False" CellPadding="4" ForeColor="#333333" GridLines="None" AutoGenerateDeleteButton="True" AutoGenerateEditButton="True" ShowFooter="True" AllowPaging="True" ShowHeaderWhenEmpty="True" ClientIDMode="Static" DataKeyNames="NumeroLinea">
                                <AlternatingRowStyle BackColor="White" ForeColor="#284775" />
                                <Columns>
                                    <asp:TemplateField HeaderText="#Línea">
                                        <EditItemTemplate>
                                            <asp:Label ID="lblNumeroLineaEdit" runat="server" Text='<%# Bind("NumeroLinea") %>'></asp:Label>
                                        </EditItemTemplate>
                                        <FooterTemplate>
                                            <asp:Button ID="btnAgregarDetalle" runat="server" ForeColor="Black" Text="Agregar" OnClick="btnAgregarDetalle_Click" />
                                        </FooterTemplate>
                                        <ItemTemplate>
                                            <asp:Label ID="lblNumeroLinea" runat="server" Text='<%# Bind("NumeroLinea") %>'></asp:Label>
                                        </ItemTemplate>
                                    </asp:TemplateField>
                                    <asp:TemplateField HeaderText="Cuenta">
                                        <EditItemTemplate>
                                            <asp:TextBox ID="txtNumeroCuentaEdit" runat="server" ClientIDMode="Static" Text='<%# Bind("NumeroCuenta") %>'></asp:TextBox>
                                        </EditItemTemplate>
                                        <FooterTemplate>
                                            <asp:TextBox ID="txtNumeroCuenta" runat="server" ForeColor="#0000CC"></asp:TextBox>
                                        </FooterTemplate>
                                        <ItemTemplate>
                                            <asp:Label ID="lblNumeroCuenta" runat="server" Text='<%# Bind("NumeroCuenta") %>'></asp:Label>
                                        </ItemTemplate>
                                    </asp:TemplateField>
                                    <asp:TemplateField HeaderText="Débito">
                                        <EditItemTemplate>
                                            <asp:TextBox ID="txtDebitoEdit" runat="server" Text='<%# Bind("Monto") %>'></asp:TextBox>
                                        </EditItemTemplate>
                                        <FooterTemplate>
                                            <asp:TextBox ID="txtDebito" runat="server" ForeColor="#0000CC"></asp:TextBox>
                                        </FooterTemplate>
                                        <ItemTemplate>
                                            <asp:Label ID="lblDebito" runat="server" Text='<%# Bind("Monto") %>'></asp:Label>
                                        </ItemTemplate>
                                    </asp:TemplateField>
                                    <asp:TemplateField HeaderText="Crédito">
                                        <EditItemTemplate>
                                            <asp:TextBox ID="txtCreditoEdit" runat="server" Text='<%# Bind("Monto") %>'></asp:TextBox>
                                        </EditItemTemplate>
                                        <FooterTemplate>
                                            <asp:TextBox ID="txtCredito" runat="server" ForeColor="#0000CC"></asp:TextBox>
                                        </FooterTemplate>
                                        <ItemTemplate>
                                            <asp:Label ID="lblCredito" runat="server" Text='<%# Bind("Monto") %>'></asp:Label>
                                        </ItemTemplate>
                                    </asp:TemplateField>
                                    <asp:TemplateField HeaderText="Referencia">
                                        <EditItemTemplate>
                                            <asp:TextBox ID="txtReferenciaEdit" runat="server" Text='<%# Bind("Referencia") %>'></asp:TextBox>
                                        </EditItemTemplate>
                                        <FooterTemplate>
                                            <asp:TextBox ID="txtReferencia" runat="server" ForeColor="#0000CC"></asp:TextBox>
                                        </FooterTemplate>
                                        <ItemTemplate>
                                            <asp:Label ID="lblReferencia" runat="server" Text='<%# Bind("Referencia") %>'></asp:Label>
                                        </ItemTemplate>
                                    </asp:TemplateField>
                                    <asp:TemplateField HeaderText="Detalle">
                                        <EditItemTemplate>
                                            <asp:TextBox ID="txtDetalleEdit" runat="server" Text='<%# Bind("Detalle") %>'></asp:TextBox>
                                        </EditItemTemplate>
                                        <FooterTemplate>
                                            <asp:TextBox ID="txtDetalle" runat="server" ForeColor="#0000CC"></asp:TextBox>
                                        </FooterTemplate>
                                        <ItemTemplate>
                                            <asp:Label ID="lblDetalle" runat="server" Text='<%# Bind("Detalle") %>'></asp:Label>
                                        </ItemTemplate>
                                    </asp:TemplateField>
                                    <asp:TemplateField HeaderText="Centro Costo">
                                        <EditItemTemplate>
                                            <asp:TextBox ID="txtCodigoCentroCostoEdit" runat="server" Text='<%# Bind("CodigoCentroCosto") %>'></asp:TextBox>
                                        </EditItemTemplate>
                                        <FooterTemplate>
                                            <asp:TextBox ID="txtCentroCosto" runat="server" ForeColor="#0000CC"></asp:TextBox>
                                        </FooterTemplate>
                                        <ItemTemplate>
                                            <asp:Label ID="lblCodigoCentroCosto" runat="server" Text='<%# Bind("CodigoCentroCosto") %>'></asp:Label>
                                        </ItemTemplate>
                                    </asp:TemplateField>
                                    <asp:TemplateField HeaderText="Tipo Cambio">
                                        <EditItemTemplate>
                                            <asp:TextBox ID="txtTipoCambioMonedaEdit" runat="server" Text='<%# Bind("TipoCambioMoneda") %>'></asp:TextBox>
                                        </EditItemTemplate>
                                        <FooterTemplate>
                                            <asp:TextBox ID="txtTipoCambio" runat="server" ForeColor="#0000CC"></asp:TextBox>
                                        </FooterTemplate>
                                        <ItemTemplate>
                                            <asp:Label ID="lblTipoCambioMoneda" runat="server" Text='<%# Bind("TipoCambioMoneda") %>'></asp:Label>
                                        </ItemTemplate>
                                    </asp:TemplateField>
                                </Columns>
                                <EditRowStyle BackColor="#999999" />
                                <EmptyDataTemplate>
                                    No hay registros
                                </EmptyDataTemplate>
                                <FooterStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
                                <HeaderStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
                                <PagerStyle BackColor="#284775" ForeColor="White" HorizontalAlign="Center" />
                                <RowStyle BackColor="#F7F6F3" ForeColor="#333333" />
                                <SelectedRowStyle BackColor="#E2DED6" Font-Bold="True" ForeColor="#333333" />
                                <SortedAscendingCellStyle BackColor="#E9E7E2" />
                                <SortedAscendingHeaderStyle BackColor="#506C8C" />
                                <SortedDescendingCellStyle BackColor="#FFFDF8" />
                                <SortedDescendingHeaderStyle BackColor="#6F8DAE" />
                            </asp:GridView>
                        </div>

    Lo he intentado de varias formas sin embargo el resultado de 

    CType(gvAsientoDetalle.Rows(e.RowIndex).FindControl("txtDetalleEdit"), TextBox).Text

    Siempre es el valor anterior y no el ingresado por el usuario en txtDetalleEdit por tanto no puedo actualizar los datos

    Saludos Cordiales,


    domingo, 28 de agosto de 2016 21:02