Ich baue eine Website (umbraco basiert), wo die Benutzer mehrere Bilder zu ihren Beiträgen hochladen können. Was ich bisher habe, ist:ASP.NET Multiple Fileupload
<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>
So ist der Benutzer in der Lage ist, die Menge von Fileupload-Boxen (max 3 though) auf der Website zu wählen.
Mein C# sieht wie folgt aus:
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;
}
}
Also im Grunde bin ich das Hinzufügen eines neuen Fileupload-Steuerelement in das Panel je nachdem, wie viele der Nutzer will.
Nun, in meiner Save-Button habe ich den folgenden Code:
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);
}
}
Ich habe versucht, wenn die Menge der Kontrollen in der Platte zu prüfen, gleich 0 ist und es scheint, es ist .. Die Seltsame Wenn ich überprüfe, ob das von der UmbracoSave-Methode zurückgegebene Medienelement null ist, ist dies nicht der Fall.
Auch heißt es, dass die Liste (Bilder) Anzahl 0 ist ..
Kann jemand etwas Licht in diese? :-)
Jede Hilfe wird sehr geschätzt!
Alles Gute,
Bo
Ja. Sollte Gecko Uploadify für Umbraco verwenden können: http://our.umbraco.org/projects/website-utilities/gecko-uploafify – sebastiaan
Hallo ck, danke für deine Antwort :) Ich dachte, du könntest über jeden asp.net platzieren Kontrolle in einem UpdatePanel, aber naja .. Ich habe versucht, das Updatepanel zu löschen, aber auf meinem Save Button click -Ereignis sagt mir immer noch, dass mein Panel (pnlUploadControls) Kontrollen Sammlung 0 ist :( – bomortensen
@sebastiaan: Danke Kumpel, obwohl dies fällig ist auf der Website selbst passieren und nicht in der Umbraco-Backend-Administration. – bomortensen