Не получить опубликованный файл в asp.net 3.5. Управление FileUpload - PullRequest
0 голосов
/ 12 января 2010

это мой код в файле конструктора моего пользовательского элемента управления

<%@ 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>

Я не получаю свойство опубликованного файла Fiepath / name и Fileupload для элементов управления имеет значение null я проверяю fvFileUpload.Postedfile в событии клика AddImageInfoButton

Может кто-нибудь, пожалуйста, скажите мне, что я делаю неправильно в этом коде ... Заранее спасибо

1 Ответ

2 голосов
/ 12 января 2010

Загрузка файлов не поддерживается в асинхронных обратных передачах, например, при использовании UpdatePanel. Прочитайте это сообщение в блоге для более подробной информации.

Вот два предложенных обходных пути:

  1. Имеет специальную кнопку «Загрузить», которая выполняет обычную обратную передачу вместо асинхронной обратной передачи. Вы можете достичь этого, используя несколько приемов: кнопка должна быть вне всех UpdatePanels; иметь кнопку быть целью PostBackTrigger UpdatePanel; или вызовите ScriptManager.RegisterPostBackControl () для него.
  2. Иметь специальную страницу загрузки файлов, на которой нет UpdatePanels. Многие веб-сайты уже делают это в любом случае.
...