none
como hacer que se produzca un PostBack?

    Pregunta

  • Hola a todos, tengo un código que hace que se muestren algunos campos u otros, están dentro de un  FormView, no funciona es decir se eejcuta todo pero no se refresca la página y se ven todos los campos, creo que con un postback se corregiría.

    Muchas gracias.

    este es mi código

     

    Private Sub CambiarIdioma(ByVal intIdioma As Short)

     

    If (FormView1.CurrentMode = FormViewMode.Edit) Then

     

    Dim txtN1 As TextBox = CType(FormView1.Row.FindControl("txtNombre1"), TextBox)

     

    Dim txtN2 As TextBox = CType(FormView1.Row.FindControl("txtNombre2"), TextBox)

     

    Dim txtN3 As TextBox = CType(FormView1.Row.FindControl("txtNombre3"), TextBox)

     

    Dim txtT1 As TextBox = CType(FormView1.Row.FindControl("txtTexto1"), TextBox)

     

    Dim txtT2 As TextBox = CType(FormView1.Row.FindControl("txtTexto2"), TextBox)

     

    Dim txtT3 As TextBox = CType(FormView1.Row.FindControl("txtTexto3"), TextBox)

     

    If Not (txtN1 Is Nothing) Then txtN1.Visible = False

     

    If Not (txtN2 Is Nothing) Then txtN2.Visible = False

     

    If Not (txtN3 Is Nothing) Then txtN3.Visible = False

     

    If Not (txtT1 Is Nothing) Then txtT1.Visible = False

     

    If Not (txtT2 Is Nothing) Then txtT2.Visible = False

     

    If Not (txtT3 Is Nothing) Then txtT3.Visible = False

     

    Select Case intIdioma

     

    Case 1

     

    If Not (txtN1 Is Nothing) Then txtN1.Visible = True

     

    If Not (txtT1 Is Nothing) Then txtT1.Visible = True

     

    Case 2

     

    If Not (txtN2 Is Nothing) Then txtN2.Visible = True

     

    If Not (txtT2 Is Nothing) Then txtT2.Visible = True

     

    Case 3

     

    If Not (txtN3 Is Nothing) Then txtN3.Visible = True

     

    If Not (txtT3 Is Nothing) Then txtT3.Visible = True

     

    Case Else

     

    Stop

     

    End Select

     

    ElseIf (FormView1.CurrentMode = FormViewMode.ReadOnly) Then

     

    Dim lblN1 As Label = CType(FormView1.Row.FindControl("lblNombre1"), Label)

     

    Dim lblN2 As Label = CType(FormView1.Row.FindControl("lblNombre2"), Label)

     

    Dim lblN3 As Label = CType(FormView1.Row.FindControl("lblNombre3"), Label)

     

    Dim lblT1 As Label = CType(FormView1.Row.FindControl("lblTexto1"), Label)

     

    Dim lblT2 As Label = CType(FormView1.Row.FindControl("lblTexto2"), Label)

     

    Dim lblT3 As Label = CType(FormView1.Row.FindControl("lblTexto3"), Label)

     

    If Not (lblN1 Is Nothing) Then lblN1.Visible = False

     

    If Not (lblN2 Is Nothing) Then lblN2.Visible = False

     

    If Not (lblN3 Is Nothing) Then lblN3.Visible = False

     

    If Not (lblT1 Is Nothing) Then lblT1.Visible = False

     

    If Not (lblT2 Is Nothing) Then lblT2.Visible = False

     

    If Not (lblT3 Is Nothing) Then lblT3.Visible = False

     

    Select Case intIdioma

     

    Case 1

     

    If Not (lblN1 Is Nothing) Then lblN1.Visible = True

     

    If Not (lblT1 Is Nothing) Then lblT1.Visible = True

     

    Case 2

     

    If Not (lblN2 Is Nothing) Then lblN2.Visible = True

     

    If Not (lblT2 Is Nothing) Then lblT2.Visible = True

     

    Case 3

     

    If Not (lblN3 Is Nothing) Then lblN3.Visible = True

     

    If Not (lblT3 Is Nothing) Then lblT3.Visible = True

     

    Case Else

     

    Stop

     

    End Select

     

    End If

     

    End Sub

    martes, 23 de marzo de 2010 23:56

Todas las respuestas

  • hola

     

    no entendi la del todo el planteo de la pregunta

    - porque dice que el formwiew no funciona ? tuenes algun error, no se visualzian los datos

    - generar un Postback desde donde, seria la idea?

    desde el cliente, por javascript

     

    o sea el postback podrias hacerlo con un boton, o cargar cuando realzias alguna accion de edicion, desde alguna otra accion

    o sea si tines una lista de entidades en una grilla, al seleccionar una esta hace el postback y alli cargas el formview

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    miércoles, 24 de marzo de 2010 1:08
  • Hola Leandro, muchas gracias por rú interés. Creo que te he liado on los dos preguntas tan seguidas: El primer error lo solucioné a la tremenda es decir generé un nuevo FormView y lo hice todo de nuevo. Lo que estoy haciendo es lo siguiente: la página se verá en 3 idiomas, por lo qeu en la base de datos tengo los campos por tripilicado en función del idioma. He programado lo que he puesto en el post para que en función del parametro que le pase solo se vean algunos campos del Formview (el resto estarán ocultos) es decir si eligen el idioma 1 en un combo box, se lanza el proceso que he puesto el post y oculto los campos del idioma 2 e idioma 3. EL código se ejecuta correctament se pongo algunos campos visible a false pero siguien viendose, imagino que porque hace falta un postback para que el servidor genere la página sin esos campos. La cuestión es que no sé como hacer un postback por código es decir que instrucción poner al final del código que os he mostrado para forzar el postback. Si alguien cree que sería mejor hacerlo con AJAX u otra opción por favor una pequeña pista de como empezar a mirarlo. Bueno un cordial saludo a todo el mundo.
    miércoles, 24 de marzo de 2010 11:29
  • Hola Leandro, muchas gracias por rú interés. Creo que te he liado on los dos preguntas tan seguidas: El primer error lo solucioné a la tremenda es decir generé un nuevo FormView y lo hice todo de nuevo. Lo que estoy haciendo es lo siguiente: la página se verá en 3 idiomas, por lo qeu en la base de datos tengo los campos por tripilicado en función del idioma. He programado lo que he puesto en el post para que en función del parametro que le pase solo se vean algunos campos del Formview (el resto estarán ocultos) es decir si eligen el idioma 1 en un combo box, se lanza el proceso que he puesto el post y oculto los campos del idioma 2 e idioma 3. EL código se ejecuta correctament se pongo algunos campos visible a false pero siguien viendose, imagino que porque hace falta un postback para que el servidor genere la página sin esos campos. La cuestión es que no sé como hacer un postback por código es decir que instrucción poner al final del código que os he mostrado para forzar el postback. Si alguien cree que sería mejor hacerlo con AJAX u otra opción por favor una pequeña pista de como empezar a mirarlo. Bueno un cordial saludo a todo el mundo.
    miércoles, 24 de marzo de 2010 11:35
  • he podido hacer el postback así.

     

    Page.ClientScript.GetPostBackEventReference(

    New PostBackOptions(Page))

    pero aun no me refresca la página. es decir sigo viendo todos los controles incluso los que he puesto visible a false.

     

     

    miércoles, 24 de marzo de 2010 15:42
  • Bueno al final ya sé porque los campos no dejaban de verse la línea donde referenciaba era:

    Dim txtN2 As TextBox = CType(FormView1.Row.FindControl("txtNombre2"), TextBox)

    y

    debe ser así.

    Dim txtN2 As TextBox = CType(FormView1.FindControl("txtNombre2"), TextBox)

     

     

    miércoles, 24 de marzo de 2010 17:28