Reputation: 64
I have a web form, which does the following.
on Page init I have a dropdown that gets populated. this part works fine and its enclosed in if(!IsPostBack) {}
routine. This part works fine.
Now when I select a value from dropdownlist, then all of my text box fields are populated with values from database, with field grayed out from editing. This happens with in a if(IsPostBack) {}
which is also fine.
I have a check box, upon clicking the check box, all of the textbox fields are now available for editing. This also happens within a if (IsPostBack) {} for renabling all of the textbox fields in the routine
protected void performUpdate_CheckedChanged(object sender, EventArgs e)
{
if (performUpdate.Checked)
{
performDeactivate.Enabled = false;
txtFirstName.Enabled = true;
txtLastName.Enabled = true;
txtContactNumber.Enabled = true;
} // just enabling all of the textbox fields do not worry about closing brackets.
Now coming to the problem, when I change the text on the textbox and click submit - which has a routine to update the database, Database is not updated. It's as though I submitted the exact same values. Except the UpdateDate
field is timestamped with current time.
Here is my submit button code..
if (IsPostBack)
{
using (SqlConnection myConnection = new SqlConnection(ConfigurationManager.ConnectionStrings["3stepMacro"].ToString()))
{
bldSQL = "UPDATE dbo.LoanOwnerStamp SET FirstName =@FirstName,LastName = @LastName,ContactNumber = @ContactNumber,ContactExt= @ContactExt ,EmailAddress= @EmailAddress,Fax= @Fax, LocationCity= @LocationCity, LocationState = @LocationState,BeginWorkHrs= @BeginWorkHrs,BeginWorkTime = @BeginWorkTime,EndWorkHrs= @EndWorkHrs,EndWorkTime= @EndWorkTime,Zone= @Zone,TeamMemberLanId= @TeamMemberLanId,ManagerId= @ManagerId ,UpdatedDate= @UpdateDate WHERE TeamMemberLanId = @TeamMemberLanId";
// using (SqlCommand updatetLSTeamMember = new SqlCommand("sp_UpdateTeamMemberProfile", myConnection))
using (SqlCommand updatetLSTeamMember = new SqlCommand(bldSQL, myConnection))
{
// updatetLSTeamMember.CommandType = CommandType.StoredProcedure;
// string wrokingHrs = ddlBeginHrs.SelectedValue + " " + ddlBeginTime.SelectedValue + " " + lblTo.Text + " " + ddlEndHrs.SelectedValue + " " + ddlEndTime.SelectedValue;
/* updatetLSTeamMember.Parameters.Add("@FirstName", SqlDbType.VarChar, 25).Value = txtFirstName.Text;
updatetLSTeamMember.Parameters.Add("@LastName", SqlDbType.VarChar, 30).Value = txtLastName.Text;
updatetLSTeamMember.Parameters.Add("@ContactNumber", SqlDbType.VarChar, 20).Value = txtContactNumber.Text;
updatetLSTeamMember.Parameters.Add("@ContactExt", SqlDbType.VarChar, 20).Value = txtContactExt.Text;
updatetLSTeamMember.Parameters.Add("@EmailAddress", SqlDbType.VarChar, 100).Value = txtEmailAddress.Text;
updatetLSTeamMember.Parameters.Add("@Fax", SqlDbType.VarChar, 25).Value = txtFax.Text;
updatetLSTeamMember.Parameters.Add("@LocationCity", SqlDbType.VarChar, 20).Value = txtLocationCity.Text;
updatetLSTeamMember.Parameters.Add("@LocationState", SqlDbType.VarChar, 20).Value = txtState.Text;
updatetLSTeamMember.Parameters.Add("@BeginWorkHrs", SqlDbType.Int).Value = ddlBeginHrs.SelectedValue.ToString();
updatetLSTeamMember.Parameters.Add("@BeginWorkTime", SqlDbType.VarChar, 20).Value = ddlBeginTime.SelectedValue.ToString();
updatetLSTeamMember.Parameters.Add("@EndWorkHrs", SqlDbType.Int).Value = ddlEndHrs.SelectedValue.ToString();
updatetLSTeamMember.Parameters.Add("@EndWorkTime", SqlDbType.VarChar, 20).Value = ddlEndTime.SelectedValue.ToString();
updatetLSTeamMember.Parameters.Add("@Zone", SqlDbType.VarChar, 20).Value = ddlZone.SelectedItem.Text;
updatetLSTeamMember.Parameters.Add("@TeamMemberLanId", SqlDbType.VarChar, 20).Value = txtTeamMemberLaniId.Text;
updatetLSTeamMember.Parameters.Add("@ManagerId", SqlDbType.VarChar, 20).Value = gblUserId;
updatetLSTeamMember.Parameters.Add("@UpdateDate", SqlDbType.DateTime).Value = DateTime.Now.ToLocalTime(); */
updatetLSTeamMember.Parameters.AddWithValue("@FirstName", gblFirstName );
updatetLSTeamMember.Parameters.AddWithValue("@LastName", txtLastName.Text);
updatetLSTeamMember.Parameters.AddWithValue("@ContactNumber", txtContactNumber.Text);
updatetLSTeamMember.Parameters.AddWithValue("@ContactExt", txtContactExt.Text);
updatetLSTeamMember.Parameters.AddWithValue("@EmailAddress", txtEmailAddress.Text);
updatetLSTeamMember.Parameters.AddWithValue("@Fax", txtFax.Text);
updatetLSTeamMember.Parameters.AddWithValue("@LocationCity", txtLocationCity.Text);
updatetLSTeamMember.Parameters.AddWithValue("@LocationState", txtState.Text);
updatetLSTeamMember.Parameters.AddWithValue("@BeginWorkHrs", ddlBeginHrs.SelectedValue.ToString());
updatetLSTeamMember.Parameters.AddWithValue("@BeginWorkTime", ddlBeginTime.SelectedValue.ToString());
updatetLSTeamMember.Parameters.AddWithValue("@EndWorkHrs", ddlEndHrs.SelectedValue.ToString());
updatetLSTeamMember.Parameters.AddWithValue("@EndWorkTime", ddlEndTime.SelectedValue.ToString());
updatetLSTeamMember.Parameters.AddWithValue("@Zone", ddlZone.SelectedItem.Text);
updatetLSTeamMember.Parameters.AddWithValue("@TeamMemberLanId", txtTeamMemberLaniId.Text);
updatetLSTeamMember.Parameters.AddWithValue("@ManagerId", gblUserId);
updatetLSTeamMember.Parameters.AddWithValue("@UpdateDate", DateTime.Now.ToLocalTime());
updatetLSTeamMember.CommandText = bldSQL;
updatetLSTeamMember.CommandType = CommandType.Text;
// pID = updatetLSTeamMember.Parameters.Add("@return_value", SqlDbType.Int);
// pID.Direction = ParameterDirection.Output;
try
{
if (updatetLSTeamMember.Connection.State == ConnectionState.Closed)
{
updatetLSTeamMember.Connection.Open();
}
// string idcat = updatetLSTeamMember.ExecuteNonQuery().ToString();
rowsAffected = updatetLSTeamMember.ExecuteNonQuery();
// string idcat = updatetLSTeamMember.Parameters["@return_value"].SqlValue.ToString();
if (rowsAffected == 1)
{
success = rowsAffected.ToString();
lblError.Text = "Successfully Updated a Team Member!";
lblCode.Text = success.ToString();
return;
}
else if (rowsAffected == 0)
{
fail = rowsAffected.ToString();
lblError.Text = "Team Member-No Rows Affected !!";
lblCode.Text = fail.ToString();
return;
}
/*
rowsAffected = insertLSTeamMember.ExecuteNonQuery();
if (rowsAffected == 1)
{
carryOn = rowsAffected;
lblLoanStamp.Text = "Successfully Added a Manager!";
lblReturnCode.Text = carryOn.ToString();
return;
}
else if (rowsAffected == -1)
{
carryOn = rowsAffected;
lblLoanStamp.Text = "Manager Already exists, Use Update / Deactivate for Maintenance !!";
lblReturnCode.Text = carryOn.ToString();
return;
}
*/
} // end try
Now my concern is Page_load routine I have to have it as if(IsPostBack)
, because it has to query the db and pre-populate the text fields. Now my submit button never takes any of the text changes. Why is it that none of my textbox changed value is captured and submitted to the database? The form just send back everything as is with a new time stamp on the UpdateDate
column. Any help is appreciated. Thanks.
Upvotes: 0
Views: 789
Reputation: 602
You seem to be abusing the Page_Load
, follow the following format for updating:
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
//Populate information.
}
}
protected void chkSomething_Changed(object sender, EventArgs e)
{
//Do checkbox stuff
}
protected void btnSomething_Clicked(object sender, EventArgs e)
{
//Update.... You don't need to check postback here. It's a postback, you know this because you caused it.
}
Upvotes: 1