Привет всем, у меня возникла небольшая проблема, и я знаю, что кто-то здесь может мне помочь, потому что я не могу понять это.
У меня есть главная страница, которая включает в себя div, содержащий текстовые поля для $ и общее время для клиента, когда они выбирают службы на странице содержимого.
Проблема, с которой я сталкиваюсь, заключается в том, что при выборе службы первая обратная передача не отображает обновленные итоги в div на главной странице. После второй обратной передачи отображаются результаты первого выбора.
Я понимаю, что это связано с тем, что обратная передача не обрабатывается до загрузки страницы. Но я не знаю, как это исправить. Я попытался вызвать метод главной страницы, который обрабатывает обновление итогов, из метода инициализации страницы содержимого, но когда я это делаю, текстовые поля главной страницы пусты.
Вот мой код для главной страницы:
namespace Teres.App
{
public partial class App : System.Web.UI.MasterPage
{
Teres.Controllers.Math M;
protected void Page_Load(object sender, EventArgs e)
{
TextBox1.Text = "customized for: " + HttpContext.Current.Session["UserName"].ToString();
TextBox2.Text = "member: " + HttpContext.Current.Session["IsMember"].ToString();
TextBox3.Text = "membership info: " + HttpContext.Current.Session["MoreInfo"].ToString();
//need to create dynamic textboxes for service events
//will call method from Tab class
if (IsPostBack)
{
TabMath();
}
}
public void UpdateBar (string service)
{
//TextBox TextBox = new TextBox();
}
public void TabMath ()
{
M = new Teres.Controllers.Math();
string dollarTotal = Convert.ToString(M.GetDollarTotal());
TextBox29.Text = "total: $" + dollarTotal;
string minuteTotal = Convert.ToString(M.GetMinuteTotal());
TextBox30.Text = "time: " + minuteTotal + " minutes";
}
}
}
и вот мой код для страницы контента
namespace Teres.App
{
public partial class Services : System.Web.UI.Page
{
Teres.Controllers.Services S;
Teres.Controllers.Math M;
protected void Page_PreInit(object sender, EventArgs e)
{
}
protected void Page_Init(object sender, EventArgs e)
{
}
protected void Page_Load(object sender, EventArgs e)
{
}
protected void CheckBox1_CheckedChanged(object sender, EventArgs e)
{
S = new Teres.Controllers.Services();
M = new Teres.Controllers.Math();
if(CheckBox1.Checked)
{
TextBox1.Text = S.GetHandDescription("manicure");
TextBox2.Text = Convert.ToString(S.GetHandTimes("manicure"));
TextBox3.Text = Convert.ToString(S.GetHandPrices("manicure"));
M.UpdateMinuteTotal(S.GetHandTimes("manicure"));
M.UpdateDollarTotal(S.GetHandPrices("manicure"));
//Teres.App.App.UpdateBar("manicure");
}
else
{
TextBox1.Text = "";
TextBox2.Text = "";
TextBox3.Text = "";
M.SubtractMinuteTotal(S.GetHandTimes("manicure"));
M.SubtractDollarTotal(S.GetHandPrices("manicure"));
//Teres.App.App.UpdateBar("manicure");
}
}
Как я могу обновить textbox29 и textbox30 сразу после выбора, чтобы обратная передача сразу отображалась на главной странице?
Спасибо!