У меня есть modalpopup внутри пользовательского элемента управления с именем PoPupModel.ascx
<ajaxToolkit:ModalPopupExtender
BackgroundCssClass="modalBackground"
ID="PopupMsg"
Drag="true" DropShadow="true"
CancelControlID="imgPopupClose"
TargetControlID="btnShowPopup"
PopupControlID="pnlPopup"
BehaviorID="PopupMsg_Behavior"
runat="server">
</ajaxToolkit:ModalPopupExtender>
<asp:Button ID="btnShowPopup" runat="server" Style="display: none" />
<asp:Button ID="btnRetour" runat="server" Text="Retour" CssClass="m-btn" Style="display: none" />
<asp:Panel ID="pnlPopup" runat="server" CssClass="MyModalCustomPopupCss" Style="display: none;">
<div class="header">
<div class="matricule">
<asp:Literal ID="Matricule" runat="server"></asp:Literal>
</div>
<div class="name">
<asp:Literal ID="Name" runat="server"></asp:Literal>
</div>
</div>
<div align="left" style="position: relative;">
<a id="imgPopupClose" runat="server" class="close"></a>
</div>
<div class="body">
<asp:PlaceHolder runat="server" ID="PlaceHolderContent" />
</div>
<div class="footer" align="right">
</div>
</asp:Panel>
И в коде позади PoPupModel.ascx:
public string MessageTitle { get; set; }
public string MatriculeTitle { get; set; }
private ITemplate contents = null;
//public string mat { get; set; }
[TemplateContainer(typeof(TemplateControl))]
[PersistenceMode(PersistenceMode.InnerProperty)]
[TemplateInstance(TemplateInstance.Single)]
public ITemplate Contents
{
get { return contents; }
set { contents = value; }
}
public void ShowPopUp()
{
Name.Text = (String.IsNullOrEmpty(MessageTitle)) ? "Information" : MessageTitle;
Matricule.Text = (String.IsNullOrEmpty(MessageTitle)) ? "XXXX" : MatriculeTitle;
PopupMsg.Show();
}
public void HideModal()
{
PopupMsg.Hide();
}
protected void Page_Init()
{
if (contents != null)
contents.InstantiateIn(PlaceHolderContent);
}
protected void Page_Load(object sender, EventArgs e)
{
}
я вызываю пользовательский элемент управления внутри другого пользовательский элемент управления, который я назвал UC_ListCertif.ascx следующим образом:
<ucPoPupModel:UC_PoPupModel runat="server" ID="ajouterCertificat">
<Contents>
<asp:UpdatePanel runat="server">
<ContentTemplate>
<div class="modal-body">
<asp:FileUpload runat="server" CssClass="ZtxtLeft fileUpload" Width="100%"
ID="FileUploadCertif" Font-Size="X-Small" />
</div>
<div class="modal-footer">
<asp:Button runat="server" ID="btnSave" class="btn btn-success btn-lg" Text="ADD"
OnClick="btnSave_Click"></asp:Button>
</ContentTemplate>
<Triggers>
<asp:PostBackTrigger ControlID="btnSave" />
</Triggers>
</asp:UpdatePanel>
</Contents>
</ucPoPupModel:UC_PoPupModel>
когда всплывающее окно вызывается с помощью .shopopup () и загружает файл, а когда я нажимаю кнопку ADD, fileUpload возвращает NULL в коде, стоящем за UC_ListCertif. ascx.cs
private void AddCertificat()
{
HttpPostedFile postedFile = FileUploadCertif.PostedFile;
string fileName = Path.GetFileName(postedFile.FileName);
string fileExtension = Path.GetExtension(fileName);
int fileSize = postedFile.ContentLength;
//some code here
}