Asp.NET upload med ajax (Asp.net ajax updatepanel)
For de som prøver å laste opp en fil med en ASP.net upload control, vil oppleve at deres kontroller alltid er tom. Dette fordi kontrolleren ikke støtter å bli brukt i et updatepanel.
For å løse dette må følgende gjøres:
I page_load på siden hvor upload-kontrolleren ligger:
ScriptManagerId.RegisterPostBackControl(ButtonSaveID);
Gitt siden din bruker master pages, og scriptmanageren ligger på denne kan du gjøre tilsvarende fra en content page:
((ScriptManager)this.Master.FindControl(”ScriptManagerID”)).RegisterPostBackControl(ButtonSaveID);
Videre:
Upload-kontrolleren har en max-grense på 4MB. For å øke denne må web.config overstyre machine.config sin maxRequestLength.
Følgende viser hvordan en kan øke max-størrelsen på filer til 20MB:
<system.web>
<httpRuntime executionTimeout=”240″ maxRequestLength=”20480″ />
</system.web>
In English:
If you try to use an upload control inside an updatepanel, you will always get an empty control back with it’s properties unset.
To enable the usage of a Asp.NET upload control inside an updatepanel, you need to register a postback control on the scriptmanager. This can be done with the codes written above.
Also, in order to increase the max size limit, edit your web.config like stated above.