动态加载时调用用户控制按钮单击事件

时间:2012-01-27 12:45:25

标签: c# asp.net user-controls

我有一个网络应用程序,可以在一天中为学生分配一段时间表。

所以为此我有一个用户控件作为TimePeriod,这个控件是在网页上动态加载的。

我的用户控件包含两个文本框和一个按钮控件,我需要找到该按钮的点击事件。在这个按钮上它应该检索两个相关文本框的值。但是我无法找到这个的点击事件按钮。

此用户控件在该页面上的“提交”按钮事件的另一页上加载。 但是页面上用户控件的数量是不同的,所以我有一个代码可以动态创建一个用户控件列表。

例如,我将j值设置为10,实际上它会有所不同看起来像这样:

for (int j = 1; j < 10; j++)
{
    TableRow row = new TableRow();
    TableCell cell = new TableCell();

    cell.Text = j.ToString();
    cell.Height = 10;
    cell.Width = 75;
    row.Height = 10;
    cell.BackColor = System.Drawing.Color.FromKnownColor(System.Drawing.KnownColor.Gray);
    //cell.BackColor = #FFFFFF;
    row.Cells.Add(cell);

    TimePeriod ib = (TimePeriod)LoadControl("TimePeriod.ascx");
    TableCell cell1 = new TableCell();
    cell1.BackColor = System.Drawing.Color.FromKnownColor(System.Drawing.KnownColor.Gray);
        cell1.Controls.Add(ib);
        row.Cells.Add(cell1);

        tbl1.Rows.Add(row);
    cell = null; row = null;
}

1 个答案:

答案 0 :(得分:2)

您需要确保在页面的每个回发上添加事件。不要将其限制在第一个页面加载,即常见的!Page.IsPostBack

您还需要在Page_Init而不是Page_Load或其他任何位置构建和加载动态控件。这是一个常见的错误。如果您在Page_Load或其他任何地方构建,那么它们就不会被添加到ViewState并导致问题