none
Controlar TextBox Edititemtemplate RRS feed

  • Pergunta

  • Boa tarde!!!

    Estou com um problema para desabilitar um TextBox que só é visualizado no modo de edição.

    Eu to querendo dar um Enabled= false, quando o usuário X estiver tentando editar um determinado campo da grid, porém não consigo acessar o mesmo, pois da erro de referencia, informando que o  TextBox   não existe.

    Queria fazer algo dessa forma, mas não consigo.

    CType(GvRow.FindControl("txbQtdMov"), TextBox).Enabled = False

    Alguém já fez algo parecido? 

    terça-feira, 14 de agosto de 2012 19:11

Respostas

  • Tucão eu fiz um exemplo aqui funcionou;

    O meu evento ficou da seguinte forma:

     
    Protected Sub GridView1_RowDataBound(sender As Object, e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles GridView1.RowDataBound
          
            If e.Row.RowState = DataControlRowState.Edit Then
                CType(e.Row.FindControl("txbQtdMov"), TextBox).Enabled = False
            End If
    
        End Sub
    


    Se a resposta foi útil por favor qualifique! Janderson Candido de Mattos - MCTS



    quarta-feira, 15 de agosto de 2012 14:33

Todas as Respostas

  • Tucão você usar Jquery para desabilitar o campo!!!

    uma pergunta, em qual evento você esta tentando usar isso CType(GvRow.FindControl("txbQtdMov"), TextBox).Enabled = False ?


    Se a resposta foi útil por favor qualifique! Janderson Candido de Mattos - MCTS

    quarta-feira, 15 de agosto de 2012 12:05
  • Já tentei  no RowDataBound, RowEditing e no RowCommand e da sempre mesmo erro de objeto não encontrado.

    <asp:TemplateField HeaderText="Qtde" SortExpression="QtdMov">
                                <EditItemTemplate>
                                    <asp:TextBox ID="txbQtdMov" runat="server" CssClass="cssGridTextBox" 
                                        Text='<%# Bind("QtdMov") %>' Width="30px"></asp:TextBox>
                                </EditItemTemplate>
                                <ItemTemplate>
                                    <asp:Label ID="lblQtdMov" runat="server" Text='<%# Bind("QtdMov") %>'></asp:Label>
                                </ItemTemplate>
                                <ItemStyle CssClass="cssGridColCenter" />
                            </asp:TemplateField>

    A label que está dentro do <ItemTemplate> eu consigo controlar, mas quando entra no modo de edição não consigo fazer o mesmo controle com a Textbox.

     
    quarta-feira, 15 de agosto de 2012 12:44
  • Tucão no RowEditing você ja tentou desta forma?

     CType(GvRow.Rows(e.NewEditIndex).FindControl("txbQtdMov"), TextBox).Enabled = False


    Se a resposta foi útil por favor qualifique! Janderson Candido de Mattos - MCTS

    quarta-feira, 15 de agosto de 2012 13:21
  • Tucão no RowEditing você ja tentou desta forma?

     CType(GvRow.Rows(e.NewEditIndex).FindControl("txbQtdMov"), TextBox).Enabled = False


    Se a resposta foi útil por favor qualifique! Janderson Candido de Mattos - MCTS

    Janderson, já tentei dessa forma sim, o problema é que ele passa pelo evento RowEditing antes de exibir a TextBox e por isso da o erro de objeto não encontrado.

    Eu tenho que validar TextBox no momento que ela for exibida, mas não sei em que evento posso fazer isso, pois já tentei nos principais e nada.

    Abaixo está o código que to usando no evento RowDataBound:

    Protected Sub gvwProgramacao_RowDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles gvwProgramacao.RowDataBound
            If e.Row.RowState = DataControlRowState.Normal Or e.Row.RowState = DataControlRowState.Alternate Or e.Row.RowState = DataControlRowState.Selected Then
                If e.Row.RowType = DataControlRowType.DataRow Then
                    Dim clsValidaUsuario As cls_valida_usuario
                    clsValidaUsuario = New cls_valida_usuario
                    Dim vstrUsuario As String = User.Identity.Name
                    Dim movimento As Int32 = gvwProgramacao.DataKeys(e.Row.RowIndex).Value
                    CType(e.Row.FindControl("imbEditarMovimento"), ImageButton).Visible = clsValidaUsuario.UsuarioRegraOK(vstrUsuario, "VM008") And clsValidaUsuario.UsuarioFechamentoOK(vstrUsuario, movimento)
                    CType(e.Row.FindControl("imbExcluirMovimento"), ImageButton).Visible = clsValidaUsuario.UsuarioRegraOK(vstrUsuario, "VM009") And clsValidaUsuario.UsuarioFechamentoOK(vstrUsuario, movimento)

                    If gvwProgramacao.EditIndex <> -1 Then
             CType(gvwProgramacao.Rows(0).FindControl("txbQtdMov"), TextBox).Enabled = False
             'CType(e.Row.FindControl("txbQtdMov"), TextBox).Enabled = False                              
                    End If
                End If
            End If
        End Sub


    quarta-feira, 15 de agosto de 2012 14:03
  • Tucão eu fiz um exemplo aqui funcionou;

    O meu evento ficou da seguinte forma:

     
    Protected Sub GridView1_RowDataBound(sender As Object, e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles GridView1.RowDataBound
          
            If e.Row.RowState = DataControlRowState.Edit Then
                CType(e.Row.FindControl("txbQtdMov"), TextBox).Enabled = False
            End If
    
        End Sub
    


    Se a resposta foi útil por favor qualifique! Janderson Candido de Mattos - MCTS



    quarta-feira, 15 de agosto de 2012 14:33
  • E ae tucão????? funfo?????

    Se a resposta foi útil por favor qualifique! Janderson Candido de Mattos - MCTS

    quarta-feira, 15 de agosto de 2012 17:11
  • E ae tucão????? funfo?????

    Se a resposta foi útil por favor qualifique! Janderson Candido de Mattos - MCTS

     Valeu Janderson! Funcionou sim.
    quarta-feira, 15 de agosto de 2012 17:37