Pour uploader un fichier j'utilise la bibliothèque flajaxian

Toujours dans la suite de mes posts ...
J'ai une liste de grossites
Quand je sélectionne un grossiste, il y a la création de mon tableau avec différente infos (ça marche bien).
Maintenant lors de l'ajout, je souhaiterais mettre une image mais ça bug

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
 $(function () {
            //Liste des grossistes
            $.ajax({
                type: "POST",
                url: "Edit_couleur.aspx/GetGrossistes",
                data: '{"PageEnCours":"' + document.location.href.toString() + '"}',
                contentType: "application/json; charset=utf-8",
                dataType: "json",
                success: function (msg) {
                    $('#lstGrossistes').append($('<option>', { value: "-1", text: "Sélectionnez un grossiste" }));
                    if (msg.d != null) {
                        $.each(msg.d, function (i, item) {
                            $('#lstGrossistes').append($('<option>', { value: item.IdGros, text: item.Libelle }));
                        });
                    }
                },
                error: function () {
                    alert('oups');
                }
            });
 
            //Select change sur liste grossiste
            $('#lstGrossistes').change(function () {
                var Gros = $(this).val();
                if (Gros == "-1") {
                    $('#divcouleur').html("");
                }
                else {
                    $.ajax({
                        type: "POST",
                        url: "Edit_couleur.aspx/GetCouleur",
                        data: '{"IdGros":' + Gros + ',"PageEnCours":"' + document.location.href.toString() + '"}',
                        contentType: "application/json; charset=utf-8",
                        dataType: "json",
                        success: function (msg) {
                            BuildTable(msg);
                            $('.error').hide();
                        }
                    });
                }
            });
 
            //delagate bonton add car n'existe pas au load
            $(document).on("click", "#Add", function () {
 
                $('.error').hide();
 
                var CtrlLib = $('#txtCouleur');
                var Lib = CtrlLib.val();
                if (Lib == "") {
                    $("#Lib_error").show();
                    CtrlLib.focus();
                    return false;
                }
 
                var CtrlImgName = $('#LogoName');
                var ImgName = CtrlImgName.val();
                if (ImgName == "") {
                    $("#Img_error").show();
                    return false;
                }
 
                var myData = {};
                myData.IdGros = Gros;
                myData.Code = $('#txtCode').val();
                myData.Libelle = Lib;
                myData.ImgName = ImgName;
                myData.PageEnCours = document.location.href;
 
                AddCouleur(myData);
 
                return false;
            });
 
 
        });
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
function BuildTable(msg) {
            var table = '<table><thead><tr class="Entete"><th>Libellé</th><th>Code</th><th colspan="2"></th></thead><tbody>';
 
            for (var post in msg.d) {
                var row = '<tr id=' + msg[post].IdCouleur + '>';
 
                row += '<td>' + msg[post].Libelle + '</td>';
                row += '<td>' + msg[post].IdCouleurGros + '</td>';
                row += '<td>' + '</td>';
                row += '<td><img src="/Images/suppr.png" alt="Supprimer" id="Delete"></td>';
 
                row += '</tr>';
 
                table += row;
            }
 
            //Pied pour ajout
            table += '<tr class="Entete2"><td><input type="text" id="txtCouleur" /><br /><label class="error" for="txtCouleur" id="Lib_error">Champs Libellé obligatoire.</label></td>'
            table += '<td><input type="text" id="txtCode" /><br /></td>'
            table += '<td><br /><input type="hidden" id="LogoName" /><div id="MyDiv"></div>'
            table += '<fjx:FileUploader ID="uplFichier" runat="server" UseInsideUpdatePanel="true" SuppressQueryStringParametersOnUploadUrl="False" CssUrl="~/CSS/FileUploader.css" JsFunc_FileStateChanged="FileStateChanged" MaxNumberFiles="1" MaxFileNumberReachedMessage="1 fichier maximum par upload" RequestAsPostBack="True" AllowedFileTypes="Images (Jpeg, Gig, Png):*.jpg;*.jpeg;*.png;*.gif" TransparentBackground="true" IsDebug="false" OnFileReceived="uplFichier_FileReceived"></fjx:FileUploader>'
            table += '<br /><label class="error" id="Img_error">Champs Image obligatoire.</label></td>'
            table += '<td><img src="/Images/add.png" alt="Ajouter" id="Add" /></td></tr>'
 
            table += '</tbody></table>';
 
            $('#divcouleur').html(table);
        };
côté code behind
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
Protected Sub uplFichier_FileReceived(ByVal sender As Object, ByVal e As com.flajaxian.FileReceivedEventArgs)
        Try
            'Dim evt As  com.flajaxian.FileReceivedEventArgs = CType(e,com.flajaxian.FileReceivedEventArgs)
            Dim CheminPhy As String = Server.MapPath("~/Images/Temp/")
            If Not My.Computer.FileSystem.DirectoryExists(CheminPhy) Then My.Computer.FileSystem.CreateDirectory(CheminPhy)
            e.File.SaveAs(CheminPhy & "\" & e.File.FileName)
 
        Catch ex As Exception
            HelperJournal.WriteException(ex, "Erreur dans uplFichier_FileReceived", Diagnostics.TraceEventType.Critical)
        End Try
    End Sub
Je me logue, puis quand je vais sur ma page, une exception est tout de suite levée, aucun code ne s'exécute.
Le contrôle 'ctl00_head_uplFichier' de type 'FileUploader' doit être placé dans une balise form avec runat=server.
Description : Une exception non gérée s'est produite au moment de l'exécution de la requête Web actuelle. Contrôlez la trace de la pile pour plus d'informations sur l'erreur et son origine dans le code.

Détails de l'exception: System.Web.HttpException: Le contrôle 'ctl00_head_uplFichier' de type 'FileUploader' doit être placé dans une balise form avec runat=server.

Erreur source:

Une exception non gérée s'est produite lors de l'exécution de la requête Web actuelle. Les informations relatives à l'origine et l'emplacement de l'exception peuvent être identifiées en utilisant la trace de la pile d'exception ci-dessous.

Trace de la pile:


[HttpException (0x80004005): Le contrôle 'ctl00_head_uplFichier' de type 'FileUploader' doit être placé dans une balise form avec runat=server.]
System.Web.UI.Page.VerifyRenderingInServerForm(Control control) +9049264
com.flajaxian.FileUploader.Render(HtmlTextWriter writer) +53
System.Web.UI.Control.RenderControlInternal(HtmlTextWriter writer, ControlAdapter adapter) +27
System.Web.UI.Control.RenderControl(HtmlTextWriter writer, ControlAdapter adapter) +100
System.Web.UI.Control.RenderControl(HtmlTextWriter writer) +25
System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter writer, ICollection children) +208
System.Web.UI.Control.RenderChildren(HtmlTextWriter writer) +8
System.Web.UI.Control.Render(HtmlTextWriter writer) +10
System.Web.UI.Control.RenderControlInternal(HtmlTextWriter writer, ControlAdapter adapter) +27
System.Web.UI.Control.RenderControl(HtmlTextWriter writer, ControlAdapter adapter) +100
System.Web.UI.Control.RenderControl(HtmlTextWriter writer) +25
System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter writer, ICollection children) +208
System.Web.UI.HtmlControls.HtmlHead.RenderChildren(HtmlTextWriter writer) +21
System.Web.UI.HtmlControls.HtmlContainerControl.Render(HtmlTextWriter writer) +31
System.Web.UI.Control.RenderControlInternal(HtmlTextWriter writer, ControlAdapter adapter) +27
System.Web.UI.Control.RenderControl(HtmlTextWriter writer, ControlAdapter adapter) +100
System.Web.UI.Control.RenderControl(HtmlTextWriter writer) +25
System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter writer, ICollection children) +208
System.Web.UI.Control.RenderChildren(HtmlTextWriter writer) +8
System.Web.UI.Control.Render(HtmlTextWriter writer) +10
System.Web.UI.Control.RenderControlInternal(HtmlTextWriter writer, ControlAdapter adapter) +27
System.Web.UI.Control.RenderControl(HtmlTextWriter writer, ControlAdapter adapter) +100
System.Web.UI.Control.RenderControl(HtmlTextWriter writer) +25
System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter writer, ICollection children) +208
System.Web.UI.Control.RenderChildren(HtmlTextWriter writer) +8
System.Web.UI.Page.Render(HtmlTextWriter writer) +29
System.Web.UI.Control.RenderControlInternal(HtmlTextWriter writer, ControlAdapter adapter) +27
System.Web.UI.Control.RenderControl(HtmlTextWriter writer, ControlAdapter adapter) +100
System.Web.UI.Control.RenderControl(HtmlTextWriter writer) +25
System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +3060

Soit que le flash à la volée c'est nul et il vaut mieux fileuploader les fichier différemment soit que j'ai aussi besoin d'aide