Ich benutze derzeit Kendo UI zum Hochladen von Dateien in eine DB mit MVC3 und Razor und Entity Framework. Ich habe es in mehreren Bereichen meiner Website gut funktioniert, außer wenn ich es auf das Zulassen eines einzigen Uploads beschränken muss. Ich habe mehrere auf false festgelegt, was mehrere Auswahlmöglichkeiten verbieten muss, aber der Benutzer darf trotzdem beliebig oft auf die Auswahlschaltfläche klicken, um Dateien hinzuzufügen, wodurch die Anforderungen für dieses Feld in der Datenbank verletzt werden.Wie beschränke ich Kendo UI Web-Upload Um nur einen einzigen Upload zu ermöglichen?
Ich habe einige Vorschläge ausprobiert, die ich auf ihrer Website gefunden habe, aber sie beziehen sich auf die aktuell ausgewählten Elemente in der aktuellen Anfrage, nicht auf die gesamte Upload-Liste (siehe Bild unten).
<script type="text/javascript">
function singleFile(e) {
var files = e.files;
if (e.files.length > 1) {
alert('Only one file may be uploaded, cancelling operation...');
e.preventDefault();
}
}
</script>
@(Html.Kendo().Upload()
.Name("resumeAttachments")
.Multiple(false)
.Async(async => async
.Save("ResumeSave", "File")
)
.Events(c => c
.Upload("resumeOnUpload")
)
.Events(c => c
.Success("resumeOnSuccess")
)
.Events(c => c
.Complete("singleFile")
)
)
Vielleicht war das anders, aber jetzt (v2016.3.1028) wird bei der Verwendung von 'multiple: false' zusätzlich zur Aktion add die Aktion remove aufgerufen - das Steuerelement bereinigt zuvor ausgewählte Dateien. Wenn Ihre Anforderung jedoch darin besteht, dass sie ihre anfänglich hochgeladene Datei nicht ändern können, würde Ihre akzeptierte Lösung oder Ihre nicht-asynchrone + nicht-multiple Konfiguration funktionieren. – mlhDev