回发时以 C# 列表增量 ASP.net

本文关键字:ASP net 列表 | 更新日期: 2023-09-27 18:32:11

我有一个奇怪的问题。 在我的程序中,用户操作下拉框并按 ADD 按钮以使用所选项填充列表框。 最终,我使用 INSERT 命令将这些项目发送到 MYSQL 数据库。 当用户点击 ADD 按钮时,项目将添加到通用列表和列表框中,在回发时一切似乎都很好,我可以整天添加内容。 但是,当我点击"提交/保存"按钮时,将数据发送到服务器,无论回发的原因是什么,列表都会在每次回发时一遍又一遍地将添加的数据复制到自己身上。我可以在 lstbox 中看到结果,我可以看到 List.count 在上升。

我的page_load部分没有代码。 不过,我确实使用会话属性来保存列表数据。

public List<string> activityProp
    {
        get
        {
            if (HttpContext.Current.Session["codelist"] == null)
            {
                HttpContext.Current.Session["codelist"] = new List<string>();
            }
            return HttpContext.Current.Session["codelist"] as List<string>;
        }
        set
        {
            HttpContext.Current.Session["codelist"] = value;
    }
}

这是按钮的代码。 sqlsetter() 方法只有一个通用的 SQL 命令结构和一个插入字符串。它仅从此按钮触发。

protected void cmdSave_Click(object sender, EventArgs e)
    {
        //this will use the 'test' class to do a rule check on the day
        test therules = new test();
        bool comp = therules.check(dayProp, timeProp, activityProp);
        if (comp == true)
        {
            lblComp.Text = "You're ok!";
            lblComp.ForeColor = Color.Green;
            lblError.Text = "";
            SQLdaysetter();
        }
        else
        {   
            string zeerror = therules.getError();
            lblComp.Text = "You're not ok!";
            lblError.Text = "at " + zeerror;
            lblComp.ForeColor = Color.Red;
            lblError.ForeColor = Color.Red;
        }
    }

SQL的东西:

using (MySqlConnection conn = new    MySqlConnection(ConfigurationManager.ConnectionStrings["theConnectionString"].ConnectionString))
            {
                conn.Open();
                using (MySqlCommand cmdIns = new MySqlCommand(sqlstate, conn))
                {
                    cmdIns.ExecuteNonQuery();
                    cmdIns.Dispose();
                }
                conn.Close();
            }

也许这些东西甚至与问题无关,有什么想法去哪里看?

回发时以 C# 列表增量 ASP.net

我在 OnInit 事件中有一些东西,显然每次重新加载页面时它们都会运行。我仍然不确定为什么

Jake,花 10 分钟时间阅读页面生命周期(尤其是事件部分)。 它将在未来为您节省宝贵的时间。

http://msdn.microsoft.com/en-us/library/ms178472.aspx