Tengo un textbox en mi sitio web:

<asp:TextBox ID="Latitude" runat="server" ClientIDMode="Static" ></asp:TextBox>

Sobre la carga de la página, me llene de que textbox con algo de un databse:

protected void Page_Load(object sender, EventArgs e)
{
    Latitude.Text = thisPlace.Latitude;
}

Cuando quiero actualizar mi databse con un nuevo valor en un cuadro de texto, se sigue actualizando la base de datos con la que se aplicó en la página de carga:

protected void Save_Click(object sender, EventArgs e)
{
    setCoordinates(Latitude.Text);
}

¿Cómo puedo asegurarme de que setCoordinates() recupera el nuevo valor en el cuadro de texto y no el valor inicial de la base de datos de Latitude.Text = thisPlace.Latitude;?

  • ¿Dónde te llame setCoordinates?
  • Donde estás llamando setCoordinates() de?
InformationsquelleAutor jt123 | 2014-01-21

6 Comentarios

  1. 31

    Creo que es porque Devolución

    Si usted está llamando a setCoordinates() en algún evento clic del botón del cuadro de texto nuevo valor será perdido. Si eso es correcto cambiar Page_Load como este

    protected void Page_Load(object sender, EventArgs e)
    {
        if(!IsPostBack)
        {
            Latitude.Text = thisPlace.Latitude;
        }    
    }
  2. 9

    Esto es debido a que el Page_Load evento ocurre antes de que su método de setCoordinates se llama. Esto significa que la Latitud.Valor de texto es el mismo que antes.

    Debe cambiar la función de carga por lo que no siempre se establece el valor inicial del cuadro de texto.

    Cambiando el evento page_load con !Page.IsPostBack, la única vez que el valor inicial es dado, es la primera vez que la página original de carga.

    protected void Page_Load(object sender, EventArgs e)
    {
        if (!Page.IsPostBack) 
        {
            Latitude.Text = thisPlace.Latitude;
        }
    }
  3. 5

    Page_Load ejecuta cada vez que se carga la página. Agregar IsPostBack de verificación para restablecer el texto sólo en la primera página de carga:

    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            Latitude.Text = thisPlace.Latitude;
        }
    }
  4. 4

    Comprobar si la página está en devolución de lo contrario el valor será reemplazado antes de guardar

    If(!IsPostBack){
        Latitude.Text = thisPlace.Latitude;
    }
  5. 1

    Usted necesita para obtener la información de la solicitud, en lugar de utilizar la propiedad como que:

    var theValue = this.Context.Request[this.myTextBox.ClientID];
  6. 0

    Esto sucede si la carga inicial de los valores de todo de nuevo.

    if (!IsPostBack)
    {
        //call the function to load initial data into controls....
    }

Dejar respuesta

Please enter your comment!
Please enter your name here