我的问题是我需要在文本框的textchanged事件上动态创建复选框,这些事件都被检查并将其检查状态计数保存在一个int变量中,并将其分配给标签;直到这里所有成功完成但现在的问题是,如果我取消选中任何复选框,我希望他们的计数减少一个,但checkchanged事件没有触发,取消选中任何复选框都已消失... 这是我的代码:
if (DDLType.SelectedItem.Text == "Sick Leave")
{
DateTime f = DateTime.Parse(txtFrom.Text);
DateTime t = DateTime.Parse(txtTo.Text);
double daydiff = (t - f).TotalDays;
double p = daydiff;
for (int i = 1; i <= daydiff; i++)
{
string a = f.ToString("ddd");
chklist = new CheckBox();
chklist.AutoPostBack = true;
chklist.CheckedChanged += new EventHandler(CheckChanged);
chklist.ID = "chk" + i;
chklist.Text = a;
chklist.Font.Name = "Trebuchet MS";
chklist.Font.Size = 9;
chklist.Checked = true;
checkcount++;
pnlCheck.Controls.Add(chklist);
if (a == "Thu" || a == "Fri")
{
p--;
chklist.Checked = false;
checkcount--;
}
f = f.AddDays(1);
}
daydiff = p;
lblCheck.Text = checkcount.ToString();
}
protected void CheckChanged(object sender, EventArgs e)
{
if (!chklist.Checked)
{
checkcount--;
lblCheck.Text = checkcount.ToString();
}
}
我不知道出了什么问题......
这方面的任何帮助都将受到高度赞赏 提前致谢
答案 0 :(得分:0)
这是因为当您取消选中复选框后发送回发时,剩余的复选框需要动态添加,就像您在文本更改事件之后所做的那样
将此添加到您的CheckChanged事件:chklist =(CheckBox)发件人 if 子句
答案 1 :(得分:0)
您需要更改事件处理程序并仅检查cliked复选框。
protected void CheckChanged(object sender, EventArgs e)
{
chk = (CheckBox)sender
if (!chk.Checked)
{
checkcount--;
lblCheck.Text = checkcount.ToString();
}
else
{
checkcount++;
lblCheck.Text = checkcount.ToString();
}
}