[英]ASP.NET Multiple Fileupload
我正在建立一個網站(基於umbraco),用戶可以在其中將多個圖像上傳到他們的帖子中。 到目前為止,我有:
<asp:TextBox MaxLength="1" Width="29px" runat="server" ID="txtImageAmount" />
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<asp:Button ID="btnSubmitImageAmount" runat="server" Text="Vis upload felter"
onclick="btnSubmitImageAmount_Click" />
<asp:Label Visible="false" ID="lblImageAmountError" ForeColor="Red" runat="server" Text="Maks 3 billeder"></asp:Label>
<asp:Panel ID="pnlUploadControls" Visible="false" runat="server"></asp:Panel>
</ContentTemplate>
</asp:UpdatePanel>
因此,用戶可以在站點上選擇文件上傳框的數量(盡管最多3個)。
我的C#看起來像這樣:
protected void btnSubmitImageAmount_Click(object sender, EventArgs e)
{
int amountOfControls = Convert.ToInt32(txtImageAmount.Text);
if (amountOfControls <= 3)
{
for(int i = 0; i < amountOfControls; i++)
{
FileUpload fUl = new FileUpload();
fUl.ID = i.ToString();
fUl.Width = 300;
Label lblLinebreak = new Label();
lblLinebreak.Text = "<br />";
pnlUploadControls.Controls.Add(fUl);
pnlUploadControls.Controls.Add(lblLinebreak);
pnlUploadControls.Visible = true;
}
}
else
{
lblImageAmountError.Visible = true;
}
}
因此,基本上我要根據用戶需要的數量向面板添加一個新的FileUpload控件。
現在,在“保存”按鈕中,我有以下代碼:
List<Media> images = new List<Media>();
foreach (FileUpload fUl in pnlUploadControls.Controls)
{
Media m = UmbracoSave(fUl);
if (m != null)
{
images.Add(m);
}
}
if (images.Count > 0)
{
RelationType ad2media = RelationType.GetByAlias("ad2media");
foreach (Media img in images)
{
Relation.MakeNew(adDoc.Id, img.Id, ad2media, adDoc.Text + " is related to " + img.Text);
}
}
我試圖檢查面板中的控件數量是否等於0,並且看起來是..奇怪的是,如果我檢查從UmbracoSave方法返回的Media項是否為null,則不是。
此外,它說列表(圖像)計數為0。
誰能對此有所啟發? :-)
任何幫助是極大的贊賞!
祝一切順利,
博
您不能在UpdatePanel中放置標准的FileUpload控件。 就是行不通。 查看兼容AJAX的文件上傳組件。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.