none
Coletar de campo tipo TextBox de gridView durante processo de edição RRS feed

  • Pergunta

  • Olá,  

    estou um uma grid view e estou definindo um código( no code behind) para editar um campo. o Formato da grid e o código do RowUpdating tento coletar o valor que o usuário digitou mas o mesmo pega o antigo. Ou seja, estou editando no caso a hora de entrada e saidado usuario num registro de login,  só que na hora de coletar o valor digitado, dá pau no  String horas = ((TextBox)grid.Rows[indice].FindControl("txtHoraSaida")).Text;

    A fonte de dados da grid é definido numa datatable. Todas as ações estão no C#, no asp só as configurações dos componentes.

    Seguem abaixo os códigos:

    Aspx da grid:

    _____

    <asp:GridView ID="grid" runat="server" EmptyDataText="Não Tem Registros para os Campos Solicitados."
                        OnRowDeleted="grid_RowDeleted" OnRowEditing="grid_RowEditing" OnRowUpdating="grid_RowUpdating"
                        OnRowCancelingEdit="grid_RowCancelingEdit" AutoGenerateEditButton="True" AutoGenerateDeleteButton="True"
                        OnRowDeleting="grid_RowDeleting" OnSelectedIndexChanging="grid_SelectedIndexChanging"
                        AutoGenerateColumns="False" OnRowCommand="grid_RowCommand" AllowSorting="True">
                        <Columns>
                            <asp:TemplateField HeaderText="Usuário">
                                <ItemTemplate>
                                    <%#Eval("Usuário")%>
                                </ItemTemplate>
                                <EditItemTemplate>
                                    <asp:Label ID="lbUsuario" runat="server" Text='<%#Eval("Usuário") %>'></asp:Label>
                                </EditItemTemplate>
                            </asp:TemplateField>
                            <asp:TemplateField HeaderText="Dia">
                                <ItemTemplate>
                                    <%#Eval("dia") %>
                                </ItemTemplate>
                                <EditItemTemplate>
                                    <asp:Label ID="lbdia" runat="server" Text='<%#Eval("Dia") %>'></asp:Label>
                                </EditItemTemplate>
                            </asp:TemplateField>
                            <asp:TemplateField HeaderText="Mês">
                                <ItemTemplate>
                                    <%#Eval("Mês") %>
                                </ItemTemplate>
                                <EditItemTemplate>
                                    <asp:Label ID="lbmes" runat="server" Text='<%#Eval("Mês") %>'></asp:Label>
                                </EditItemTemplate>
                            </asp:TemplateField>
                            <asp:TemplateField HeaderText="Ano">
                                <ItemTemplate>
                                    <%#Eval("Ano") %>
                                </ItemTemplate>
                                <EditItemTemplate>
                                    <asp:Label ID="lbano" runat="server" Text='<%#Eval("Ano") %>'></asp:Label>
                                </EditItemTemplate>
                            </asp:TemplateField>
                            <asp:TemplateField HeaderText="IP">
                                <ItemTemplate>
                                    <%#Eval("IP")%>
                                </ItemTemplate>
                            </asp:TemplateField>
                            <asp:TemplateField HeaderText="Dia da Semana">
                                <ItemTemplate>
                                    <%#Eval("Dia da Semana")%>
                                </ItemTemplate>
                            </asp:TemplateField>
                            <asp:TemplateField HeaderText="Hora de Entrada">
                                <ItemTemplate>
                                    <%#Eval("Hora de Entrada")%>
                                </ItemTemplate>
                                <EditItemTemplate>
                                    <asp:TextBox ID="txtHoraEntrada" runat="server" Text='<%# Eval("Hora de Entrada") %>'></asp:TextBox>
                                </EditItemTemplate>
                            </asp:TemplateField>
                            <asp:TemplateField HeaderText="Hora de Saida">
                                <ItemTemplate>
                                    <%#Eval("Hora de Saida")%>
                                </ItemTemplate>
                                <EditItemTemplate>
                                    <asp:TextBox ID="txtHoraSaida" runat="server" Text='<%# Eval("Hora de Saida") %>'></asp:TextBox>
                                </EditItemTemplate>
                            </asp:TemplateField>
                            <%--<asp:TemplateField>
                                <ItemTemplate>
                                    <asp:Button ID="btEditar" runat="server" CommandName="Edit" Text="Editar" OnClick="btEditar_Click" />
                                    &nbsp;<asp:Button ID="btExclui" runat="server" CommandName="Delete" Text="Excluir" />
                                </ItemTemplate>
                                <EditItemTemplate>
                                    <asp:Button ID="brAtualizar" runat="server" CommandName="Update" Text="Update" />
                                    &nbsp;<asp:Button ID="btcancela" runat="server" CommandName="Cancel" Text="Cancelar" />
                                </EditItemTemplate>
                            </asp:TemplateField>--%>
                        </Columns>
                    </asp:GridView>

    _____

    código no evento:

    ______

    protected void grid_RowUpdating(object sender, GridViewUpdateEventArgs e)
        {
            int indice = e.RowIndex;

            String horae = ((TextBox)grid.Rows[indice].FindControl("txtHoraEntrada")).Text;
            String horas = ((TextBox)grid.Rows[indice].FindControl("txtHoraSaida")).Text;
            string t = ((TextBox)grid.Rows[indice].FindControl("txtHoraSaida")).Text;
            String usuario = ((Label)grid.Rows[indice].FindControl("lbUsuario")).Text;
            string dia = ((Label)grid.Rows[indice].FindControl("lbdia")).Text;
            String mes = ((Label)grid.Rows[indice].FindControl("lbmes")).Text;
            string ano = ((Label)grid.Rows[indice].FindControl("lbano")).Text;

            fazLogin lg = new fazLogin();

            lg.AtualizaHora(horae, t, usuario, dia, mes, ano);

    _____

    quarta-feira, 16 de janeiro de 2013 19:03

Respostas

Todas as Respostas