【发布时间】:2011-01-14 12:52:14
【问题描述】:
我正在构建一个网站(基于 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 方法返回的媒体项是否为空,它不是t.
此外,它表示列表(图像)计数为 0..
任何人都可以对此有所了解吗? :-)
非常感谢任何帮助!
一切顺利,
博
【问题讨论】:
标签: c# asp.net asp.net-ajax file-upload umbraco