我有一个网络应用程序,可以在一天中为学生分配一段时间表。
所以为此我有一个用户控件作为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;
}
答案 0 :(得分:2)
您需要确保在页面的每个回发上添加事件。不要将其限制在第一个页面加载,即常见的!Page.IsPostBack
。
您还需要在Page_Init
而不是Page_Load
或其他任何位置构建和加载动态控件。这是一个常见的错误。如果您在Page_Load
或其他任何地方构建,那么它们就不会被添加到ViewState
并导致问题