Usuário com melhor resposta
Controlar TextBox Edititemtemplate

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?
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
- Marcado como Resposta Guga Oliveira quarta-feira, 15 de agosto de 2012 17:36
- Editado Janderson Candido de Mattos quinta-feira, 16 de agosto de 2012 14:00
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
-
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.
-
-
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 a 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
-
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
- Marcado como Resposta Guga Oliveira quarta-feira, 15 de agosto de 2012 17:36
- Editado Janderson Candido de Mattos quinta-feira, 16 de agosto de 2012 14:00
-
-
E ae tucão????? funfo?????
Valeu Janderson! Funcionou sim.
Se a resposta foi útil por favor qualifique! Janderson Candido de Mattos - MCTS
- Editado Guga Oliveira quarta-feira, 15 de agosto de 2012 17:38