Ver Mensaje Individual
  #1 (permalink)  
Antiguo 25/09/2007, 15:58
Avatar de krakxp
krakxp
 
Fecha de Ingreso: junio-2006
Ubicación: NA
Mensajes: 105
Antigüedad: 18 años, 6 meses
Puntos: 0
En un datagrid, al finalizar la edicion de una fila me pase a otra fila determinada

Hola comunidad, un saludo a todos

Tengo un DataGrid asi:

Código:
<asp:datagrid id="GrdVar" runat="server" Width="700" CellSpacing="2" OnUpdateCommand="Grd_Update"
                            OnCancelCommand="Grd_Cancel" OnEditCommand="Grd_Edit" AutoGenerateColumns="False" DataKeyField="CveEntVar" BorderColor="#DEDFDE"
                            BorderStyle="None" BorderWidth="0px" BackColor="White" CellPadding="2" GridLines="Vertical" ForeColor="Black">
                            <FooterStyle BackColor="#CCCC99"></FooterStyle>
                            <SelectedItemStyle Font-Bold="True" ForeColor="White" BackColor="#CE5D5A"></SelectedItemStyle>
                            <AlternatingItemStyle CssClass="bgl"></AlternatingItemStyle>
                            <ItemStyle CssClass="bgg"></ItemStyle>
                            <HeaderStyle Font-Bold="True" HorizontalAlign="Center" ForeColor="Black" CssClass="bgd"></HeaderStyle>
                            <Columns>
                                <asp:BoundColumn Visible="False" DataField="CveEntVar" SortExpression="CveEntVar" ReadOnly="True"
                                    HeaderText="Clave">
                                    <ItemStyle Wrap="False"></ItemStyle>
                                </asp:BoundColumn>
                                <asp:BoundColumn DataField="PosVarFrm" ReadOnly="True">
                                    <ItemStyle Font-Size="8pt" Wrap="False" Width="10%"></ItemStyle>
                                </asp:BoundColumn>
                                <asp:TemplateColumn SortExpression="NomCrtVar" HeaderText="Abreviatura">
                                    <HeaderStyle Font-Bold="True" CssClass="ltr"></HeaderStyle>
                                    <ItemStyle HorizontalAlign="Center" Width="10%"></ItemStyle>
                                    <ItemTemplate>
                                        <asp:Label id=LblCrt runat="server" Font-Size="8" Text='<%# DataBinder.Eval(Container.DataItem, "NomCrtVar") %>'>
                                        </asp:Label>
                                    </ItemTemplate>
                                    <EditItemTemplate>
                                        <asp:TextBox id=edit_NomCrt runat="server" Font-Size="8" Columns="5" Text='<%# DataBinder.Eval(Container.DataItem, "NomCrtVar") %>' MaxLength="5">
                                        </asp:TextBox>&nbsp;
                                        <asp:RequiredFieldValidator id="rfvNomCor" CssClass="error" Runat="server" ForeColor=" " ControlToValidate="edit_NomCrt"
                                            ErrorMessage="La abreviatura de la variable es requerida." Text="*">*</asp:RequiredFieldValidator>&nbsp;
                                        <asp:regularexpressionvalidator id="revNomCor" runat="server" CssClass="error" ForeColor=" " ValidationExpression="[^<>{}[\]|'%&amp;+\*]*"
                                            ControlToValidate="edit_NomCrt" Display="Dynamic">*</asp:regularexpressionvalidator>&nbsp;
                                    </EditItemTemplate>
                                </asp:TemplateColumn>
                                <asp:TemplateColumn SortExpression="NomLrgVar" HeaderText="Nombre">
                                    <HeaderStyle Font-Bold="True" CssClass="ltr"></HeaderStyle>
                                    <ItemStyle Width="40%"></ItemStyle>
                                    <ItemTemplate>
                                        <asp:Label id=LblLrg runat="server" Font-Size="8" Text='<%# DataBinder.Eval(Container.DataItem, "NomLrgVar") %>'>
                                        </asp:Label>
                                    </ItemTemplate>
                                    <EditItemTemplate>
                                        <asp:TextBox id=edit_NomLrg runat="server" Font-Size="8" Columns="40" Text='<%# DataBinder.Eval(Container.DataItem, "NomLrgVar") %>' MaxLength="40">
                                        </asp:TextBox>
                                        <asp:regularexpressionvalidator id="revNomLar" runat="server" CssClass="error" ForeColor=" " ValidationExpression="[^<>{}[\]|'%&amp;+\*]*"
                                            ControlToValidate="edit_NomLrg" Display="Dynamic">*</asp:regularexpressionvalidator>
                                        <asp:RequiredFieldValidator id="rfvNomLar" CssClass="error" Runat="server" ForeColor=" " ControlToValidate="edit_NomLrg"
                                            ErrorMessage="El nombre de la variable es requerido." Display="Dynamic" Text="*">*</asp:RequiredFieldValidator>
                                    </EditItemTemplate>
                                </asp:TemplateColumn>
                                <asp:TemplateColumn SortExpression="CveUniMed" HeaderText="Unidad de medida">
                                    <HeaderStyle Font-Bold="True" CssClass="ltr"></HeaderStyle>
                                    <ItemStyle HorizontalAlign="Center" Width="20%"></ItemStyle>
                                    <ItemTemplate>
                                        <asp:Label id=LblUniMed runat="server" Font-Size="8" Text='<%# DataBinder.Eval(Container.DataItem, "NomUniMed") %>'>
                                        </asp:Label>
                                    </ItemTemplate>
                                    <EditItemTemplate>
                                        <asp:DropDownList id=edit_UniMed runat="server" Width="120px" Font-Size="8" DataSource="<%#GetUniMed()%>" DataTextField="NomUniMed" DataValueField="CveUniMed" SelectedIndex='<%# GetSelIndexUniMed(Container.DataItem("CveUniMed")) %>' Enabled="true">
                                        </asp:DropDownList>
                                        <asp:RequiredFieldValidator id="RequiredFieldValidator1" runat="server" CssClass="error" ForeColor=" " ControlToValidate="edit_UniMed"
                                            ErrorMessage="Falta seleccionar la Unidad de Medida">*</asp:RequiredFieldValidator>
                                    </EditItemTemplate>
                                </asp:TemplateColumn>
                                <asp:EditCommandColumn ButtonType="LinkButton" UpdateText="Guardar   " CancelText="Cancelar" EditText="Editar">
                                    <ItemStyle Font-Size="8pt" Wrap="False" Width="20%"></ItemStyle>
                                </asp:EditCommandColumn>
                            </Columns>
                            <PagerStyle HorizontalAlign="Right" ForeColor="Black" BackColor="#F7F7DE" Mode="NumericPages"></PagerStyle>
                        </asp:datagrid>
En resumen mi Datagrid es este:
id="GrdVar"
OnUpdateCommand="Grd_Update"
OnCancelCommand="Grd_Cancel"
OnEditCommand="Grd_Edit"
AutoGenerateColumns="False"
DataKeyField="CveEntVar"

Continuo, ahora lo ke kiero es que al dar click en ACTUALIZAR me pase a la donde los registros estan incompletos por supuesto ke el datagrid este en modo edicion para editar los datos que faltan.

Y eso es exactamente lo que no se como hacer, porke al kererle pasar la clave que traigo de la BD, me di cuenta que no es la misma ke usa el datagrid, y es ahi donde me estoy atorando.

Bueno mi evento para capturar la fila que voy a editar es:

Código:
'Procedimiento del Grid para Editar el item seleccionado
 Public Sub Grd_Edit(ByVal Sender As Object, ByVal E As DataGridCommandEventArgs)
        Dim iItemEdit As Integer
        iItemEdit = CInt(E.Item.ItemIndex)
        '''''iItemEdit = CInt(GrdVar.DataKeys(iItemEdit))
        GrdVar.EditItemIndex = iItemEdit
        BindGrid()
    End Sub
Y bueno quisiera ke me ayudaran con esto, miren lo intentaba hacer con este codigo, pero no funciona:

Código:
 'Obtiene las variables insertadas para el indicador
                Dim DVVariables As DataView
                Dim banderror As Boolean
                Dim i, numVar, CveEntVar As Integer
                DVVariables = Buss.GetVariables(CveInd)
                If IsNothing(DVVariables) Then
                    Response.Redirect("WebError.aspx?iErr=GetVariables")
                ElseIf DVVariables.Table.Rows.Count <= 0 Then
                    Response.Redirect("WebError.aspx?iErr=GetVariablesND")
                Else
                    numVar = DVVariables.Table.Rows.Count

                    'Verifica que el nombre corto y largo de la variable no esten vacios
                    For i = 0 To (numVar - 1)
                        sNomCrt = Trim(DVVariables.Table.Rows(i).Item("NomCrtVar"))
                        sNomLrg = Trim(DVVariables.Table.Rows(i).Item("NomLrgVar"))
                        CveEntVar = CInt(DVVariables.Table.Rows(i).Item("CveEntVar"))
                        'Si existe algun error hacemos ke edite ese item
                        If sNomCrt.Equals("") Or sNomLrg.Equals("") Then
                            '''''Dim iItemEdit As Integer
                            '''''iItemEdit = CInt(E.Item.ItemIndex)
                            '''''GrdVar.EditItemIndex = CInt(GrdVar.DataKeys(iItemEdit))
                            GrdVar.EditItemIndex = CveEntVar
                            GrdVar.DataSource = dVVar
                            GrdVar.DataBind()                            
                        End If
                    Next
                End If
Bueno en resumen: como hacer que mi datagrid se establezca en modo edicion en una fila determinada (esta fila depende de la clave que obtengo de la BD).

Gracias