回发时以 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();
}
也许这些东西甚至与问题无关,有什么想法去哪里看?
我在 OnInit 事件中有一些东西,显然每次重新加载页面时它们都会运行。我仍然不确定为什么
Jake,花 10 分钟时间阅读页面生命周期(尤其是事件部分)。 它将在未来为您节省宝贵的时间。
http://msdn.microsoft.com/en-us/library/ms178472.aspx