我正在尝试获取添加到面板的动态生成的 FileUpload 控件的值:
<asp:Panel ID="pFileControls" runat="server">
</asp:Panel>
我在通过记录集的循环期间创建控件:
foreach(DataRow dr in ds.Tables[0].Rows)
{
FileUpload fu = new FileUpload();
fu.ID = dr["SomeID"].ToString();
pFileControls.Controls.Add(fu);
}
一切正常,直到我使用此按钮提交表单:
<asp:Button ID="btnImportFile" runat="server" Text="Save" OnClick="btnImportFile_Click" />
我这样注册(Page_Load):
ScriptManager.GetCurrent(this).RegisterPostBackControl(btnImportFile);
我这样做是因为我在我的网站中使用了 MasterPage/ContentPage 设置,并且大多数事情都发生在 UpdatePanel 中以用于 AJAX 化。请记住,如果我在 HTML 视图中明确指定 FileUpload 控件,它会 100% 工作。
提交表单后,我尝试像这样迭代面板:
foreach (Control ctrl in pFileControls.Controls)
{
if (ctrl.GetType() != typeof(FileUpload))
{
continue;
}
//Do the saving of the file here
}
除了,面板似乎只返回一个控件:页面的内容占位符,没有别的。有没有人对此有一些想法?