C# 动态加载时调用用户控件按钮单击事件
我有一个web应用程序,它以一种调度器的形式为学生分配时间 因此,我有一个用户控件作为时间段,该控件在网页上动态加载 我的用户控件包含两个文本框和一个按钮控件,我需要找到该按钮的单击事件。在此按钮上,它应该检索两个相关文本框的值。但我无法找到此按钮的单击事件 此用户控件加载到另一页上该页上的“提交”按钮事件。 但是一个页面上的用户控件的数量是不同的,所以对于这个用户,我有一个动态创建用户控件列表的代码 例如,我将C# 动态加载时调用用户控件按钮单击事件,c#,asp.net,user-controls,C#,Asp.net,User Controls,我有一个web应用程序,它以一种调度器的形式为学生分配时间 因此,我有一个用户控件作为时间段,该控件在网页上动态加载 我的用户控件包含两个文本框和一个按钮控件,我需要找到该按钮的单击事件。在此按钮上,它应该检索两个相关文本框的值。但我无法找到此按钮的单击事件 此用户控件加载到另一页上该页上的“提交”按钮事件。 但是一个页面上的用户控件的数量是不同的,所以对于这个用户,我有一个动态创建用户控件列表的代码 例如,我将j值设置为10,实际上它的变化如下: for (int j = 1; j <
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;
}
for(int j=1;j<10;j++)
{
TableRow行=新TableRow();
TableCell=新的TableCell();
cell.Text=j.ToString();
单元高度=10;
单元宽度=75;
行高=10;
cell.BackColor=System.Drawing.Color.FromKnownColor(System.Drawing.KnownColor.Gray);
//cell.BackColor=#ffffffff;
行.单元格.添加(单元格);
TimePeriod ib=(TimePeriod)LoadControl(“TimePeriod.ascx”);
TableCell cell1=新的TableCell();
cell1.BackColor=System.Drawing.Color.FromKnownColor(System.Drawing.KnownColor.Gray);
单元格1.控件。添加(ib);
row.Cells.Add(cell1);
tbl1.行.添加(行);
单元格=null;行=null;
}
您需要确保在页面的每次回发中都添加了事件。不要将其限制在第一个页面加载,即!Page.IsPostBack
是常见的
此外,您还需要在Page\u Init
而不是Page\u load
或其他任何地方构建和加载动态控件。这是一个常见的错误。如果您在Page\u Load
或其他任何地方进行构造,则它们不会添加到ViewState
并导致问题