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



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

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

此外,autopostback设置为true。

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

我单击的复选框越多,就会触发其"事件"(以前使用时)。

这两张表之间只有区别。在这里,点击第一个表就可以了,点击第二个表也可以了…之后每个表都有相同的效果。再次点击第一个表,我得到2个事件要处理,点击第二个这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 eMailNotifikation_CheckedChanged(object sender, EventArgs e) { CheckBox eMailNotification = (sender as CheckBox); //Do some... calling a Webservice eRoomWebservice.DoMyTasl(<params>);
}

这些表只使用新的。。。和身份证。无特殊

编辑::::我已经在简单的ASP.NET中构建了代码,它正在工作,也许这是SharePoint问题protected void Page_Load(对象发送方,EventArgs e){表测试=新表();测验ID="test1";

        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;
    }

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

属性ID="的内容太长,在收缩IDName后,它又开始工作了。

奇怪,但这是解决方案,记住:注意属性ID的内容有多长,的某个地方必须有一个限制

相关内容

最新更新