我尝试在按钮点击事件期间向面板添加自定义控件(包含"表单"输入数据),并且我想要访问它的方法,例如。输入此数据后验证()。但是当我尝试这样做时,ctrl带有空值。
这是我的代码的一部分:
protected void btnNext2_Click(object sender, EventArgs e)
{
...
ctrlCompliance = (Compliance)LoadControl("../../ascx/SRM/Compliance.ascx");
ctrlCompliance.ReadOnly = false;
pnlCompliance.Controls.Add(ctrlCompliance);
...
}
protected void btnNext3_Click(object sender, EventArgs e)
{
...
ctrlCompliance = pnlCompliance.Controls[0] as Compliance;
ctrlCompliance.Validate() <- this is allways null
...
}
我不能像大多数解决方案那样使用Page_Init,只需在按钮点击期间加载它。有人和我有同样的问题吗?
答案 0 :(得分:0)
您应该使用Page_Init加载它,但将其visible属性设置为False。然后使用javascript或代码隐藏,当您需要显示打印按钮时,可以将其visible属性更改为True。
所以搬家:
ctrlCompliance = (Compliance)LoadControl("../../ascx/SRM/Compliance.ascx");
ctrlCompliance.ReadOnly = false;
pnlCompliance.Controls.Add(ctrlCompliance);
到Page_Init