【问题标题】:Call user control button click event when loaded dynamically动态加载时调用用户控件按钮点击事件
【发布时间】:2012-01-27 12:45:25
【问题描述】:

我有一个网络应用程序,它可以在一天的日程安排中为学生分配持续时间。

为此,我有一个用户控件作为 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;
}

【问题讨论】:

    标签: c# asp.net user-controls


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-10-06
      • 2012-04-14
      • 2012-02-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多