Binish Shaji Ответов: 1

Как обрабатывать кнопку link в gridview для использования панели обновления?


У меня есть gridview и кнопка ссылки в gridview вместе с панелью обновления.

Но кнопка ссылка предназначена для загрузки файла, который не загружается после использования панели обновления.

Есть ли какой-либо код обратной связи для кнопки ссылки в панели обновления

Также я получил ошибку при загрузке... Не удалось найти элемент управления с идентификатором "lnkDownload"

для триггера в UpdatePanel 'UpdatePanel1'.

Что я уже пробовал:

<asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional">
 <contenttemplate>
<div style="margin-left: 140px; margin-top: 90px">
                <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" 
                    BackColor="White" BorderColor="#3366CC" BorderStyle="None" BorderWidth="1px" 
                    CellPadding="4" AllowPaging="true" PageSize="50" 
                    OnRowCommand="GridView1_RowCommand" OnRowEditing="GridView1_RowEditing" 
                    OnRowCancelingEdit="GridView1_RowCancelingEdit" 
                    onrowdatabound="GridView1_RowDataBound1">
                    <columns>
                        <asp:TemplateField HeaderText="USER ID">
                            <itemtemplate>
                                <asp:Label ID="Label21" runat="server" Text='<%# Bind("userid") %>'>
                            
                        

<asp:TemplateField HeaderText="FILE DOWNLOAD">
                            <itemtemplate>
                                <asp:LinkButton ID="lnkDownload" ToolTip="Click here for download the file" runat="server" Text="Download File" CommandArgument='<%# Bind("FILEPATH") %>' CommandName="download" OnClick="lnkDownload_Click" ForeColor="Blue" Font-Underline="True">
                            
                        
<pre>
                    <FooterStyle BackColor="#99CCCC" ForeColor="#003399" />
                    <HeaderStyle BackColor="#008B8B" Font-Bold="True" ForeColor="#CCCCFF" />
                    <PagerStyle BackColor="#99CCCC" ForeColor="#003399" HorizontalAlign="Left" />
                    <RowStyle BackColor="White" ForeColor="#003399" />
                    <SelectedRowStyle BackColor="#009999" Font-Bold="True" ForeColor="#CCFF99" />
                


 
    
                <triggers>
  <asp:AsyncPostBackTrigger ControlID="lnkDownload" EventName="lnkDownload_Click" />

F-ES Sitecore

Проблема, скорее всего, связана с событием click кнопки link. Если он отправляет файл для загрузки клиенту, который будет работать как обычный клик, так как он обрабатывается как часть обычного http-запроса\ответа браузером. Когда вы помещаете его в панель обновления, он становится ajax-запросом, обрабатываемым javascript, и вы не можете отправить файл клиенту через javascript. В принципе, вы должны добавить триггер PostBack в панель updatepanel, чтобы щелчок linkbutton не происходил асинхронно.

https://docs.microsoft.com/en-us/aspnet/web-forms/overview/older-versions-getting-started/aspnet-ajax/understanding-asp-net-ajax-updatepanel-triggers

1 Ответов

Рейтинг:
1

Sharp Ninja

Я бы предложил вообще отказаться от асинхронной обратной передачи и загрузить файл, открыв новое окно по ссылке с target="_blank" и путем к файлу в качестве HREF.