I have a textbox on my website:
<asp:TextBox ID="Latitude" runat="server" ClientIDMode="Static" ></asp:TextBox>
On page load I fill that textbox with something from a databse:
protected void Page_Load(object sender, EventArgs e)
{
Latitude.Text = thisPlace.Latitude;
}
When I want to update my databse with a new value in that textbox, it still updated the database with the one put in on page load:
protected void Save_Click(object sender, EventArgs e)
{
setCoordinates(Latitude.Text);
}
How can I make sure that setCoordinates()
retrieves the new value from the textbox and not the initial value from the database from Latitude.Text = thisPlace.Latitude;
?
Check if the page is in postback otherwise the value will be replaced before the save
This is because the
Page_Load
event happens before your methodsetCoordinates
is called. This mean that the Latitude.Text value is the same as before.You should change the load function so it does not always set the initial value of the textbox.
By changing the page_load event with
!Page.IsPostBack
, the only time the initial value is given, is the first time the page originaly loads.This happens if you load initial values all over again.
I think its because PostBack
If you're calling
setCoordinates()
on some button's click event textbox's new value will be lost. If that's right changePage_Load
like this onePage_Load
executed each time page is loaded. AddIsPostBack
check to reset text only on first page load:You need to get the information from the request rather than using the property like that: