0

我正在使用 ASP.NET 开发用于 SharePoint 的 Webpart

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

此外,自动回发设置为 true。

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

我点击多少个框,多少个复选框触发它们的事件(之前使用时)。

唯一的区别在于 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>);
}

这些表只用新的......和ID..没有什么特别的

编辑:::: 我已经在简单的 ASP.NET 中构建了代码并且它在那里工作,也许这是一个受 SharePoint 问题保护的 void Page_Load(object sender, EventArgs e) { Table test = new Table(); test.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;

    }
4

1 回答 1

0

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

属性 ID="" 的内容太长,缩小 IDName 后它又可以工作了。

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

于 2014-02-19T15:10:13.137 回答