ASP.NET/Sharepoint-Checkbox.CheckChanged事件从bevore触发其他(相同)控件的相同事件

ASP.NET/Sharepoint-Checkbox.CheckChanged事件从bevore触发其他(相同)控件的相同事件,asp.net,events,sharepoint,checkbox,oncheckedchanged,Asp.net,Events,Sharepoint,Checkbox,Oncheckedchanged,我正在使用ASP.NET为SharePoint开发一个Web部件 每次单击我的页面都会被重新加载,我会在两个表中添加一个具有不同ID的复选框列表,并添加一个事件来处理CheckedChanged事件(都是一样的) 此外,自动回发设置为true 当我运行并单击我的第一个复选框时,每个复选框都认为工作正常。 通过单击同一表格中的下一个复选框,我进入eventReceiver 2!事件-首先是右侧事件,然后在之前单击复选框 我点击的框越多,触发事件的复选框就越多(以前使用时) 这两个表之间唯一的区别是

我正在使用ASP.NET为SharePoint开发一个Web部件

每次单击我的页面都会被重新加载,我会在两个表中添加一个具有不同ID的复选框列表,并添加一个事件来处理CheckedChanged事件(都是一样的)

此外,自动回发设置为true

当我运行并单击我的第一个复选框时,每个复选框都认为工作正常。 通过单击同一表格中的下一个复选框,我进入eventReceiver 2!事件-首先是右侧事件,然后在之前单击复选框

我点击的框越多,触发事件的复选框就越多(以前使用时)

这两个表之间唯一的区别是。在这里,单击第一个表中的“全部”即可,单击第二个表中的“全部”即可。。。之后,每个表都有相同的效果。再次在第一个表中单击,我得到两个要处理的事件,在第二个表中单击这两个要处理的事件

我不知道出了什么问题

这里有一些代码

CheckBox eMailNotifikation = new CheckBox() { TextAlign = TextAlign.Right };
eMailNotifikation.ID = #anCounter + "_" + #anName + "_" + #anothername + "_" + "mail_checkbox";
eMailNotifikation.AutoPostBack = true;          
eMailNotifikation.CheckedChanged -= new EventHandler(eMailNotifikation_CheckedChanged);
eMailNotifikation.Checked = #setInitialValue;
//Add Event
eMailNotifikation.CheckedChanged += new EventHandler(eMailNotifikation_CheckedChanged);
cell.Controls.Add(eMailNotifikation);
这就是创造

这是我的听筒:

void EmailNotification\u CheckedChanged(对象发送者,事件参数e){
复选框eMailNotification=(发件人为复选框);
//做一些…调用Web服务
eRoomWebservice.DoMyTasl();
}

这些表仅使用新的。。。我想。。没什么特别的

编辑::: 我已经在easy ASP.NET中构建了代码,它正在工作,可能这是SharePoint的问题 受保护的无效页面加载(对象发送方、事件参数e){ 表测试=新表(); test.ID=“test1”

TableHeaderRow thr=新的TableHeaderRow();
TableHeaderCell thc=新的TableHeaderCell();
thc.Text=“复选框”;
thr.Controls.Add(thc);
试验.对照.添加(thr);
TableRow tr=新的TableRow();
对于(int i=0;i<10;i++)
{
TableCell tc=新的TableCell();
复选框chb=新复选框();
chb.ID=“一些”+i;
chb.AutoPostBack=true;
chb.CheckedChanged+=新事件处理程序(TestEH);
tc.控制添加(chb);
tr.Controls.Add(tc);
}
试验.对照.添加(tr);
根。对照。添加(测试);
}
void TestEH(对象发送方,事件参数e){
复选框chbx=作为复选框的发件人;
字符串文本=chbx.ID;
}

我发现了我发布的问题所在

属性ID=”“的内容太长,在收缩IDName后,它再次工作

奇怪,但这是解决办法, 记住:注意属性ID的内容有多长,在某些地方一定有限制

        TableHeaderRow thr = new TableHeaderRow();
        TableHeaderCell thc = new TableHeaderCell();
        thc.Text = "Checkboxes";

        thr.Controls.Add(thc);
        test.Controls.Add(thr);

        TableRow tr = new TableRow();            

        for (int i = 0; i < 10; i++)
        {
            TableCell tc = new TableCell();
            CheckBox chb = new CheckBox();
            chb.ID = "Some_" + i;
            chb.AutoPostBack = true;
            chb.CheckedChanged += new EventHandler(TestEH);

            tc.Controls.Add(chb);
            tr.Controls.Add(tc); 
        }


        test.Controls.Add(tr);
        root.Controls.Add(test);
    }

    void TestEH(object sender, EventArgs e) {
        CheckBox chbx = sender as CheckBox;
        string text = chbx.ID;

    }