2010-01-12 4 views
0

ce mon code dans mon fichier de concepteur de contrôle utilisateurNe pas avoir publié le fichier dans asp.net 3.5. FileUpload contrôle

<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="ucImageList.ascx.cs" 
    Inherits="Pariwaar.UserControl.ucImageList" %> 
<asp:ScriptManagerProxy ID="ajaxScriptManagerProxy" runat="server"> 
</asp:ScriptManagerProxy> 
<asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Always"> 
    <ContentTemplate> 
     <asp:HiddenField ID="hidUserId" runat="server" /> 
     <asp:HiddenField ID="hidAlbumId" runat="server" /> 
     <table> 
      <tr> 
       <td> 
        <asp:FileUpload ID="fvUploadFile" runat="server" EnableViewState="true" /> 
        &nbsp; 
        <asp:LinkButton ID="AddImageInfoButton" CssClass="blueLink" runat="server" Text="Upload" 
         OnClick="AddImageInfoButton_Click"></asp:LinkButton> 
       </td> 
      </tr> 
      <tr> 
       <td> 
        <asp:DataList ID="DtLstImageList" runat="server" DataSourceID="odsImageList" OnItemCommand="DtLstImageList_ItemCommand" 
         EnableTheming="true" RepeatColumns="4" RepeatDirection="Horizontal"> 
         <ItemTemplate> 
          <ul> 
           <li style="display: block; text-align: center;"> 
            <asp:ImageButton ID="ImgBtnImagePath" runat="server" ImageUrl='<%# DataBinder.Eval(Container.DataItem, "ImagePath")%>' 
             ImageAlign="Middle" Width="100" Height="100" CommandName="ViewImage" CommandArgument='<%# DataBinder.Eval(Container.DataItem, "ImageId")%>' /> 
           </li> 
           <li style="display: block;"> 
            <asp:Button ID="UpdateCoverPageImage" runat="server" Text="Set as Cover Page" CssClass="inputButtonWithoutpadding" 
             CommandName="SetAsCoverPage" CommandArgument='<%# DataBinder.Eval(Container.DataItem, "ImageId")%>' /> 
           </li> 
          </ul> 
         </ItemTemplate> 
        </asp:DataList> 
       </td> 
      </tr> 
     </table> 
    </ContentTemplate> 
</asp:UpdatePanel> 
<asp:ObjectDataSource ID="odsImageList" runat="server" SelectMethod="GetImageInfo" 
    TypeName="Pariwaar.Controller.GallaryHandler" DeleteMethod="DeleteImageInfo"> 
    <DeleteParameters> 
     <asp:Parameter Name="ImageId" Type="Int64" /> 
    </DeleteParameters> 
    <SelectParameters> 
     <asp:Parameter DefaultValue="0" Name="ImageId" Type="Int64" /> 
     <asp:ControlParameter ControlID="hidAlbumId" Name="AlbumId" PropertyName="Value" 
      Type="Int64" DefaultValue="0" /> 
    </SelectParameters> 
</asp:ObjectDataSource> 

je ne reçois pas Fiepath/nom et contrôles fileUpload affiché propriété fichier est nul je vérifie fvFileUpload.Postedfile en cas de clic de AddImageInfoButton

quelqu'un peut-il s'il vous plaît me dire ce que je fais mal dans ce code ... -Merci à l'avance

Répondre

2

téléchargements de fichiers ne sont pas pris en charge dans async postbacks, par exemple lorsque vous utilisez le UpdatePanel. Lisez ceci blog post pour plus de détails.

Voici deux solutions de contournement proposées:

  1. ont un bouton dédié « Envoyer » qui fait un postback régulier au lieu d'un postback async. Vous pouvez y parvenir en utilisant plusieurs techniques: Avoir le bouton à l'extérieur de tous les UpdatePanels; que le bouton soit la cible d'un PostBackTrigger de UpdatePanel; ou appelez ScriptManager.RegisterPostBackControl() dessus.
  2. Avoir une page de téléchargement de fichiers dédiée qui n'a pas de UpdatePanels. De nombreux sites Web le font déjà de toute façon.