Ho cercato di farlo da ieri ma non riesco a pensare a una soluzione. Ho un ripetitore contenente una casella di controllo e un fileupload, questo ripetitore si ripete numerose volte a seconda del contenuto della mia tabella. Quando la casella di controllo sotto il caricamento del file è selezionata, non dovrebbe controllare il fileupload. Non riesco a pensare a un modo per farlo. Qualche idea? Ecco il codice.Utilizzare la casella di controllo all'interno di un controllo ripetitore
La classe:
protected void UploadButton_Click(object sender, EventArgs e)
{
String savePath = @"~/files/";
try
{
foreach (RepeaterItem item in rptVrijstellingen.Items)
{
FileUpload file=(FileUpload)item.FindControl("FileUpload1");
HiddenField uid = (HiddenField)item.FindControl("hiddenid");
CheckBox ch = (CheckBox)item.FindControl("CBupload");
if(ch.Checked)
Response.Write("checked");
else
{
if (file.HasFile)
{
String fileName = file.FileName;
savePath += fileName;
file.SaveAs(Server.MapPath(savePath + fileName));
tblBijlage s = new tblBijlage();
s.bijlageTitel = fileName;
s.bijlageURL = savePath;
s.bijlageType = "1";
s.fk_externvakID = Convert.ToInt16(uid.Value);
BLLstudent.insertFile(s);
}
else
throw new Exception("Gelieve bij alle vakken een file toe te voegen of gegeven aan mevrouw Van Orlé aan te vinken en een afspraak te maken.");
}
Response.Redirect("s_student_Ovrijstellingen.aspx");
}
}
catch (Exception ex)
{
UploadStatusLabel.Text = ex.Message;
}
}
La vista:
<!-- language: xml -->
<asp:Repeater ID="rptVrijstellingen" runat="server">
<HeaderTemplate></HeaderTemplate>
<ItemTemplate>
<h2><%# Eval("tblExternVak.ExternvakNaam") %></h2>
<asp:HiddenField ID="hiddenid" Value='<%# Eval("tblExternVak.pk_externvakID") %>' runat="server" />
<h4>Selecteer een bestand om te uploaden:</h4>
Gelieve het bestand de naam te geven van het overeenkomstige vak om de verwerking vlot te laten verlopen.
<br /><br /> <br />
<asp:FileUpload id="FileUpload1" runat="server"></asp:FileUpload>
<br />
<asp:CheckBox id="CBupload" runat="server" /><asp:Label id="lblUpload" runat="server"> Geleverd aan Mevrouw Van Orlé</asp:Label>
<hr />
</ItemTemplate>
<SeparatorTemplate><hr /></SeparatorTemplate>
</asp:Repeater>
<asp:Label id="UploadStatusLabel" runat="server" ForeColor="Red"></asp:Label>
<br /><br />
<asp:Button id="UploadButton" Text="volgende > " OnClick="UploadButton_Click" runat="server"></asp:Button>
Come u può vedere il suo solo un problema logiche ... Qualcuno mi può dare un esempio su come risolvere questo problema?
Provare l'impostazione 'EnableViewState =" true "' per il controllo CheckBox – sll
così la casella di controllo controlla ogni upload alrdy? oO –
testato, non ha funzionato :( –