AsyncPostBack FileUpload для ModalPopup - PullRequest
1 голос
/ 28 марта 2011

Я использую UpdatePanel, и моя кнопка отправки является одним из триггеров наряду с кнопкой очистки. Но проблема в том, что у меня есть элемент управления FileUpload в DIV. Это модальное всплывающее окно, поэтому оно отображает форму для пользователя, чтобы загрузить небольшую заметку. Когда я пытаюсь загрузить файл с помощью AsyncPostBackTrigger, он ничего не делает (о чем я читал). Мой вопрос: как мне не использовать PostBackTrigger, потому что я хочу использовать asyncpostbacktrigger, потому что, если происходит ошибка, всплывающее окно Modal закрывается, и пользователь не знает, был ли файл загружен или нет. Что я могу сделать?

Код:

<asp:Panel ID="addnotepanel" runat="server" style="/*display:none;*/" CssClass="addnotepanel">
<asp:UpdatePanel ID="UpdatePanel1" runat="server"><ContentTemplate>
            <asp:FileUpload ID="FileUpload1" runat="server" />
        &nbsp;<br />
        </ContentTemplate>
        <Triggers>
                <asp:AsyncPostBackTrigger ControlID="ClrBtn" />
                <asp:PostBackTrigger ControlID="SubmitBtn" />
                </Triggers>
            </asp:UpdatePanel>
                    File:

            <br />
            <asp:Label ID="ErrorLabel" runat="server" Visible="False"></asp:Label>
            <br />
            <asp:Button ID="Submitbtn" runat="server" Text="Submit" 
                onclick="Submitbtn_Click" />
&nbsp;<asp:Button ID="CnlBtn" runat="server" Text="Cancel" onclick="CnlBtn_Click" />
            &nbsp;<asp:Button ID="ClrBtn" runat="server" onclick="ClrBtn_Click" 
                Text="Clear" />
&nbsp; </div></asp:Panel>

1 Ответ

0 голосов
/ 29 марта 2011

оставьте SubmitBtn в качестве PostBackTrigger, но не устанавливайте его как "OkControlID" для modalpopupextender.

в подпрограмме Submitbtn_Click на стороне сервера вызовите yourModalpopupextenderID .hide (), если загрузка завершена, поэтому всплывающее окно Modal закрывается, только если нет ошибки.

Вы можете использовать AsyncFileUpload из AjaxControlToolkit Вот в качестве примера некоторый код, показывающий, как его использовать:

 <AjaxControlToolkit:AsyncFileUpload ID="AttachementsFileUpload" 
                                                    runat="server" 
                                                    OnUploadedComplete="AttachementsFileUpload_UploadedComplete"
                                                    OnClientUploadComplete="uploadComplete" />



<script type="text/javascript">
         var UpdateAttachementsGridViewButton = '<%= UpdateAttachementsGridViewButton.ClientID %>';
         function uploadComplete(sender, args) {
             $get(UpdateAttachementsGridViewButton).click();  

         }   
    </script>

Как видите, когда загрузка завершена, я использую Javascript, чтобы вызвать нажатие скрытой кнопки. Тем временем я извлекаю файл в AttachementsFileUpload_UploadedComplete, используя что-то вроде этого:

Dim AttachementsFileUpload As AjaxControlToolkit.AsyncFileUpload = AnnouncementFormView.FindControl("AttachementsFileUpload")
    Attachements.add(e.filename, AttachementsFileUpload.FileBytes)

Это то, как я использовал это в моей ситуации, но вы найдете множество примеров того, как это работает

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...