Проблема обратной передачи управления FileUpload - PullRequest
2 голосов
/ 02 марта 2010

У меня есть элемент управления FileUpload на странице aspx внутри UpdatePanel, при нажатии кнопки которого я хочу установить метку с именем файла выбранного файла.

Вот код, который у меня есть:

ASPX PAGE:

<div>
    <asp:ScriptManager ID="ScriptManager1" runat="server">
    </asp:ScriptManager>
    <asp:UpdatePanel ID="UpdatePanel1" runat="server">
        <ContentTemplate>
            <asp:FileUpload runat="server" ID="fuSimple"></asp:FileUpload>
            <asp:Button runat="server" Text="Button" ID="btnPostback" 
                onclick="btnPostback_Click" />
            <br />
            <asp:Label ID="lblFileName" runat="server" Text="File Name: "></asp:Label>
        </ContentTemplate>
    </asp:UpdatePanel>
</div>

Код сзади:

protected void btnPostback_Click(object sender, EventArgs e)
    {
        lblFileName.Text = "File Name: " + fuSimple.FileName;  
    }

Каждый раз, когда я нажимаю кнопку, я получаю пустую строку. Чего мне не хватает?

Кроме того, когда я делаю это без UpdatePanel, он работает нормально.

Комментарии / помощь приветствуется.

1 Ответ

6 голосов
/ 02 марта 2010

Элемент управления FileUpload не поддерживается в ASP.NET AJAX и асинхронных обратных передачах. Они требуют полной обратной передачи из-за особенностей загрузки файла (данные из нескольких частей).

На следующий вопрос должны быть полезны ответы: Элемент управления FileUpload внутри UpdatePanel без обновления всей страницы?

...