2

ボタンがクリックされると、値が 1 だけ増加する無効なテキスト ボックスがあります。問題は、値が 1 から 2 になることです。ボタンを押すたびにインクリメントしたい。

namespace StudentSurveySystem
{
    public partial class AddQuestions : System.Web.UI.Page
    {
        int num = 1;

        protected void Page_Load(object sender, EventArgs e)
        {

            QnoTextBox.Text = num.ToString();

        }

        protected void ASPxButton1_Click(object sender, EventArgs e)
        {
            num += 1;
            QnoTextBox.Text = num.ToString();
        }
    }
}
4

1 に答える 1

8

Postback intializes the variable num to 1 again期待されるインクリメントされた結果が得られない場合は、値をテキストボックスに入れ、値を に保存することをお勧めしますViewState

protected void ASPxButton1_Click(object sender, EventArgs e)
{
    num = int.Parse(QnoTextBox.Text);
    num++;
    QnoTextBox.Text = num.ToString();
}

ViewState の使用

public partial class AddQuestions : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {

        if(!Page.IsPostBack)
            ViewState["Num"] = "1";

    }

    protected void ASPxButton1_Click(object sender, EventArgs e)
    {           
        QnoTextBox.Text = ViewState["Num"].ToString();
        int num = int.Parse(ViewState["Num"].ToString());
        ViewState["Num"] = num++;
    }
}
于 2012-12-07T19:26:41.040 に答える