Я пытаюсь получить значения динамически генерируемых элементов управления FileUpload, которые я добавляю в Panel:
<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 для целей AJAXification.Имейте в виду, что если я явно указываю элемент управления FileUpload в представлении HTML, он работает на 100%.
Когда форма отправлена, я пытаюсь выполнить итерацию Panel следующим образом:
foreach (Control ctrl in pFileControls.Controls)
{
if (ctrl.GetType() != typeof(FileUpload))
{
continue;
}
//Do the saving of the file here
}
За исключением того, что Panel, похоже, возвращает только один элемент управления: заполнитель содержимого страницы и ничего больше.У кого-нибудь есть идеи по этому поводу?