Asp.net 如何将更新面板导出到excel

Asp.net 如何将更新面板导出到excel,asp.net,updatepanel,export-to-excel,Asp.net,Updatepanel,Export To Excel,如何将“更新”面板中的数据导出到excel工作表中?这对我很有用: 页面 Error: Sys.WebForms.PageRequestManagerServerErrorException: Script control 'timerAutoRefresh' is not a registered script control. Script controls must be registered using RegisterScriptControl() before calling Reg

如何将“更新”面板中的数据导出到excel工作表中?

这对我很有用:

页面

Error: Sys.WebForms.PageRequestManagerServerErrorException: Script control 'timerAutoRefresh' is not a registered script control. Script controls must be registered using RegisterScriptControl() before calling RegisterScriptDescriptors().
Parameter name: scriptControl
我需要做的是将计时器控件移到UpdatePanel之外,并关联AsyncPostBackTrigger。我还需要删除按钮单击的AsyncPostBackTrigger(希望您不需要这个)

Error: Sys.WebForms.PageRequestManagerServerErrorException: Script control 'timerAutoRefresh' is not a registered script control. Script controls must be registered using RegisterScriptControl() before calling RegisterScriptDescriptors().
Parameter name: scriptControl
<form id="form1" runat="server">
    <asp:ScriptManager runat="server" ID="ScriptManager1">
    </asp:ScriptManager>
    <asp:UpdatePanel runat="server" ID="UpdatePanel1">
        <ContentTemplate>
            <asp:Table ID="Table1" runat="server">
                <asp:TableRow runat="server">
                    <asp:TableCell runat="server">Test</asp:TableCell>
                </asp:TableRow>
            </asp:Table>
            <asp:Label runat="server" Text="Page not refreshed yet." ID="Label1">
            </asp:Label>
        </ContentTemplate>
        <Triggers>
            <asp:AsyncPostBackTrigger ControlID="Timer1" EventName="tick"></asp:AsyncPostBackTrigger>
        </Triggers>
    </asp:UpdatePanel>
    <asp:Button ID="btnExport" runat="server" Width="62px" Text="Export" OnClick="btnExport_Click" />
    <asp:Timer runat="server" ID="Timer1" Interval="10000" OnTick="Timer1_Tick">
    </asp:Timer>
    <asp:Label runat="server" Text="Label" ID="Label2"></asp:Label>
protected void Timer1_Tick(object sender, EventArgs e)
{
   Label1.Text = "Panel refreshed at: " +
                   DateTime.Now.ToLongTimeString();
}

public override void VerifyRenderingInServerForm(Control control)
{
   /* Verifies that the control is rendered */
}

protected void btnExport_Click(object sender, EventArgs e)
{
        Response.Clear();
        Response.Buffer = true;
        Response.ContentType = "application/vnd.ms-excel";
        Response.AddHeader("content-disposition", "attachment;filename=MyFiles.xls");
        Response.Charset = "";
        this.EnableViewState = false;

        StringWriter stringWrite = new StringWriter();
        HtmlTextWriter htmlWrite = new HtmlTextWriter(stringWrite);
        UpdatePanel1.RenderControl(htmlWrite);
        Response.Write(stringWrite.ToString());
        Response.End();
}