Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/30.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用UpdatePanel从UserControl下载文件_C#_Asp.net_User Controls - Fatal编程技术网

C# 使用UpdatePanel从UserControl下载文件

C# 使用UpdatePanel从UserControl下载文件,c#,asp.net,user-controls,C#,Asp.net,User Controls,我有一个定义如下的用户控件 <asp:UpdatePanel ID="UpdatePanel1" runat="server"> <ContentTemplate> <table> <tr> <td> <asp:ImageButton ID="ImageButto

我有一个定义如下的用户控件

     <asp:UpdatePanel ID="UpdatePanel1" runat="server">
        <ContentTemplate>
            <table>
                <tr>
                    <td>
                        <asp:ImageButton ID="ImageButton" runat="server" />
                    </td>
                    <td>
                        <asp:Label ID="lblHeader" runat="server" Text=""></asp:Label>
                    </td>
                </tr>
            </table>
            <asp:Button runat="server" ID="saveLayoutBtn" Text="Save" OnClick="SaveBtn_Click"
                ToolTip="Save current grid layout" />
            <asp:Button ID="Home_ExportExcel" runat="server" Text="Export To Excel" OnClick="Home_ExportExcel_Click" Visible="false" />
            <asp:PlaceHolder ID="placeHolder" runat="server"></asp:PlaceHolder>
            <asp:Label ID="notificationLbl" runat="server" Text="" Font-Bold="true"></asp:Label>
            <div id="DataGridWrapper">
<!--A Grid View tat displays Data-->
    </div>
    </ContentTemplate>
    </asp:UpdatePanel>
我没有下载任何文件,而是在http响应中以xml格式获取网格数据。 如果我在.aspx页面上使用相同的代码,它工作正常,文件可以下载。
我发现等等,发现使用UpdatePanel可能是个问题。但我不确定我在这里遗漏了什么。

要下载需要发回的文件,请尝试此项

 <asp:UpdatePanel ID="UpdatePanel1" runat="server">
    <ContentTemplate>
        <table>
            <tr>
                <td>
                    <asp:ImageButton ID="ImageButton" runat="server" />
                </td>
                <td>
                    <asp:Label ID="lblHeader" runat="server" Text=""></asp:Label>
                </td>
            </tr>
        </table>
        <asp:Button runat="server" ID="saveLayoutBtn" Text="Save" OnClick="SaveBtn_Click"
            ToolTip="Save current grid layout" />
        <asp:Button ID="Home_ExportExcel" runat="server" Text="Export To Excel" OnClick="Home_ExportExcel_Click" Visible="false" />
        <asp:PlaceHolder ID="placeHolder" runat="server"></asp:PlaceHolder>
        <asp:Label ID="notificationLbl" runat="server" Text="" Font-Bold="true"></asp:Label>
        <div id="DataGridWrapper">
<!--A Grid View tat displays Data-->
</div>
</ContentTemplate>
 <Triggers>
   <asp:PostBackTrigger ControlID="Home_ExportExcel" />
  </Triggers>
</asp:UpdatePanel>


Ok..但是当我们在收到响应时单击导出按钮时,会立即发生回发..这与默认情况下的回发有何不同?更新面板实现异步回发,因此如果我们想要完整回发,我们需要显式创建回发触发器
 <asp:UpdatePanel ID="UpdatePanel1" runat="server">
    <ContentTemplate>
        <table>
            <tr>
                <td>
                    <asp:ImageButton ID="ImageButton" runat="server" />
                </td>
                <td>
                    <asp:Label ID="lblHeader" runat="server" Text=""></asp:Label>
                </td>
            </tr>
        </table>
        <asp:Button runat="server" ID="saveLayoutBtn" Text="Save" OnClick="SaveBtn_Click"
            ToolTip="Save current grid layout" />
        <asp:Button ID="Home_ExportExcel" runat="server" Text="Export To Excel" OnClick="Home_ExportExcel_Click" Visible="false" />
        <asp:PlaceHolder ID="placeHolder" runat="server"></asp:PlaceHolder>
        <asp:Label ID="notificationLbl" runat="server" Text="" Font-Bold="true"></asp:Label>
        <div id="DataGridWrapper">
<!--A Grid View tat displays Data-->
</div>
</ContentTemplate>
 <Triggers>
   <asp:PostBackTrigger ControlID="Home_ExportExcel" />
  </Triggers>
</asp:UpdatePanel>