Asp.net 为什么取消选中复选框-checkedChanged事件不执行
在我的函数CreateCheckbox中,我动态创建复选框-所有复选框都带有已分配的checkedChanged事件 在事件处理程序中,我测试复选框是否被选中,如果是,我在会话中检查value属性 但是,例如,如果客户机决定选中一个复选框,并且值被添加到会话中,但是他突然决定要取消选中该复选框-因此我应该从arraylist中删除该值,然后从会话中删除该值 最大的问题是,当取消选中时,似乎永远不会执行Checkedchanged事件处理程序,并且永远不会执行此代码 我的完整代码Asp.net 为什么取消选中复选框-checkedChanged事件不执行,asp.net,Asp.net,在我的函数CreateCheckbox中,我动态创建复选框-所有复选框都带有已分配的checkedChanged事件 在事件处理程序中,我测试复选框是否被选中,如果是,我在会话中检查value属性 但是,例如,如果客户机决定选中一个复选框,并且值被添加到会话中,但是他突然决定要取消选中该复选框-因此我应该从arraylist中删除该值,然后从会话中删除该值 最大的问题是,当取消选中时,似乎永远不会执行Checkedchanged事件处理程序,并且永远不会执行此代码 我的完整代码 您在创建复选框时
您在创建复选框时是否提到Autopostback=true?如果没有,请执行此操作并查看是否有效。只有在没有回发的情况下,才应创建复选框,否则可能会丢失ViewState。
else if (!chk.Checked)
{
lblProba.Text += "You wll be delited";
for (int i = 0; i < element.Count; i++)
{
if (element[i].ToString().Equals(chk.InputAttributes["value"]) == true)
element.Remove(element[i]);
}
}
protected void checkChanged(object sender, EventArgs e)
{
CheckBox chk = (CheckBox)sender;
if (chk.Checked)
{
element.Add(chk.InputAttributes["value"]);
}
else if (!chk.Checked)
{
lblProba.Text += "You wll be delited";
for (int i = 0; i < element.Count; i++)
{
if (element[i].ToString().Equals(chk.InputAttributes["value"]) == true)
element.Remove(element[i]);
}
}
for (int t = 0; t < element.Count; t++)
{
Session["chk"]+= element[t].ToString();
}
}
protected void createCheckboxes()
{
chkddlchange = true;
int numTourists = 2;
for (int i = 0; i < numTourists; i++)
{
Label myLabel = new Label();
myLabel.ID = "lblAccomodation" + (i + 1).ToString();
myLabel.Text = "Настаняване Турист" + (i + 1).ToString();
Page.FindControl("form1").Controls.Add(myLabel);
DropDownList myDropDownList = new DropDownList();
myDropDownList.ID = "ddlTourist" + i.ToString();
Page.FindControl("form1").Controls.Add(myDropDownList);
Page.FindControl("form1").Controls.Add(new LiteralControl("<br />"));
string connectionString = "Server=localhost\\SQLEXPRESS;Database=excursion;Trusted_Connection=true";
string query =
"SELECT Extra_Charge_ID, Excursion_ID, Amout, Extra_Charge_Description FROM EXTRA_CHARGES WHERE Excursion_ID=" + mynewstring;
SqlConnection conn = new SqlConnection(connectionString);
SqlCommand cmd = new SqlCommand(query, conn);
try
{
conn.Open();
SqlDataReader rd= cmd.ExecuteReader();
int s = 0;
while (rd.Read())
{
CheckBox mycheckbox = new CheckBox();
mycheckbox.ID = "chkblextracharge" + i.ToString() + s.ToString();
mycheckbox.Text = rd["Extra_Charge_Description"].ToString();
mycheckbox.InputAttributes.Add("value", rd["Extra_Charge_ID"].ToString());
mycheckbox.AutoPostBack = true;
mycheckbox.EnableViewState =true ;
mycheckbox.CheckedChanged += new EventHandler(checkChanged);
Page.FindControl("form1").Controls.Add(mycheckbox);
s++;
}
//myche.Add(mycheckbox.Items[s].Text);
}//End of try
catch (Exception ex)
{ }
}//end of for
}
}
}