c#动态创建的控件:如何进行事件处理

时间:2017-09-27 16:35:48

标签: c# asp.net event-handling dynamic-controls

首先:我在这里看到堆栈溢出很多答案,与我的主题相关,但我不明白答案,因为我对c#,asp.net和web应用程序开发的新手。如果我在这里详细解释我的问题,我认为它会更好。请注意,我真的是网络开发的新手,所以我真的需要细节。

我的任务(问题): 我已经在我的codebehind文件的一个方法中创建了一个表,以向用户和每个用户显示一个复选框。 user1复选框 user2复选框 user3复选框 ... 目标是,应用程序应该将此用户排除在某些进一步的操作之外。 以下是codesnippet,其中创建了表:

TableRow trHead = new TableRow(); 
TableCell tcNameHead = new TableCell();
//Header of the first column of the Table
tcNameHead.Text = "Users to be deleted";
tcNameHead.CssClass = "headerResultsRowForProject";
trHead.Cells.Add(tcNameHead);
//Here is de first entry of the 'exclude_from_delete' column
TableCell tcGroupHead = new TableCell();
tcGroupHead.Text = "exclude from delete";
tcGroupHead.CssClass = "headerResultsRow";
trHead.Cells.Add(tcGroupHead);
TableBert.Rows.Add(trHead);

foreach (ListItem li in list_deletedUsers.Items)
{
    String s = li.Text;
    //Creating the basic Elements
    TableRow myrow = new TableRow();
    TableCell cellone = new TableCell();
    TableCell celltwo = new TableCell();
    CheckBox cb = new CheckBox();
    //cb.CheckedChanged += cb_CheckedChanged;
    //cb.CheckedChanged += this.cb_CheckedChanged; /*does not work!*/
    //cb.CheckedChanged += new System.EventHandler(cb_CheckedChanged); /*does not work!*/
    //Setting the values and adding cells to row
    cellone.Text = s;
    myrow.Cells.Add(cellone);
    celltwo.Controls.Add(cb);
    celltwo.ApplyStyle(tableStyle);
    myrow.Cells.Add(celltwo);
    //Third Column Cell for further use
    //TableCell cellthree = new TableCell();
    //cellthree.BackColor = System.Drawing.Color.AliceBlue;
    //Adding to Row
    //myrow.Cells.Add(cellthree);
    //Adding to TableBert
    TableBert.Rows.Add(myrow);
}

表格显示(和bevore:created),每次,我选择网站上合适的单选按钮。

但是现在我遇到了事件处理的问题:我必须检查,标记了哪个复选框并从特殊列表中删除相应的用户(因此该用户不会成为以下过程的一部分)。

我已经编写了事件处理代码,这里是代码片段:

protected void cb_CheckedChanged(object sender, EventArgs e)
    {
        //do sth.
    }

但是这个方法永远不会被调用。我真的不明白,但我一整天都在谷歌上搜索。据我所知:它与页面生命周期有关,我通过点击复选框引发回发事件?就像你看到的,我不是舒尔。我还读过,应该“在page_load方法中创建动态控件”。但我没有我的复选框,如果我得到了pageload方法,或者至少,我不知道如何处理它。我会感激任何想法,任何解释。如果你能用一些好的页面来支持我,这将有助于我自己学习这个(以及其他主题),这对我有帮助。 :)

注意:我已经在某些微软页面上,这里是在stackoverflow和其他页面上,讨论了这个主题。但我想,我需要有人,他详细解释,这里有什么,以及我如何能够一步一步地和背景一起做事件处理。或者通过互联网资源支持我,这解释了我应该知道的一切。请不要忘记:我是全新的;)

0 个答案:

没有答案