C #: значение не сохраняется в обратной передаче - PullRequest
0 голосов
/ 25 декабря 2010
using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;

public partial class expt2 : System.Web.UI.Page
{
    double result ;
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!Page.IsPostBack)
            result = 0.0;
 protected void Chkbxbd_CheckedChanged(object sender, EventArgs e)
    {
        if (Chkbxbd.Checked)
        {
            txtbxttl.Text = "" + 10000;
            result += double.Parse(txtbxttl.Text);

        }
        else
            result = result - 10000;


      }
    protected void Chkbxsfa_CheckedChanged(object sender, EventArgs e)
    {
        if (Chkbxsfa.Checked)
        {
            txtbxttl.Text = "" + 15000;
            result += double.Parse(txtbxttl.Text);

        }
        else
            result = result - 15000;


    }
 protected void btnttl_Click(object sender, EventArgs e)
    {
        txtbxttl.Text = "" + result;

    }
}

В этом коде индивидуальное значение для чекбокса в порядке, но когда итоговая сумма становится равной 0.

Пожалуйста, помогите мне исправить это.

Ответы [ 2 ]

3 голосов
/ 25 декабря 2010

Значение "result" не сохраняется через обратные передачи.Либо всегда пересчитывайте его, когда вам нужен конечный результат, либо сохраняйте его в состоянии просмотра.

1 голос
/ 25 декабря 2010

переменная результата не будет сохранена в многочисленных постах, потому что природа веб-приложения меньше состояния, поэтому результат в переменной ViewState или Session, как показано ниже.

    public partial class expt2 : System.Web.UI.Page
{
    double result ;
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!Page.IsPostBack)
              Session["result"] = 0.0;
    }
 protected void Chkbxbd_CheckedChanged(object sender, EventArgs e)
    {
        if (Chkbxbd.Checked)
        {
            txtbxttl.Text = "" + 10000;

            result = double.Parse(Session["result"].ToString());
            result += double.Parse(txtbxttl.Text);

            Session["result"] = result;

        }
        else
        {
             result = double.Parse(Session["result"].ToString());
             result = result - 10000;
             Session["result"]= result;
        }



      }
    protected void Chkbxsfa_CheckedChanged(object sender, EventArgs e)
    {
        if (Chkbxsfa.Checked)
        {
            txtbxttl.Text = "" + 15000;
            result = double.Parse(Session["result"].ToString());
            result += double.Parse(txtbxttl.Text);
            Session["result"] = result;

        }
        else
        {
            result = double.Parse(Session["result"].ToString());
            result = result - 15000;
            Session["result"] = result;
        }



    }
 protected void btnttl_Click(object sender, EventArgs e)
    {
        txtbxttl.Text = "" + Session["result"].ToString();

    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...