单击功能区按钮项时,DevExpress导出ASPxGridView

时间:2014-01-15 09:38:53

标签: c# javascript devexpress export-to-excel ribbon

我在点击功能区按钮

时尝试导出网格视图

问题是功能区按钮单击是客户端事件,导出功能由服务器处理。

    <script type="text/javascript">
    //Ribbon events
    function onCommandExecuted(s, e) {
        var name = e.item.name;
        if (name == "Ajouter") {
            grid.AddNewRow();
        }

        else if (name == "Modifier") {
            grid.StartEditRow(grid.GetFocusedRowIndex());
        }
        else if (name == "Supprimer") {
            if (confirm("Vous confirmez la suppression de l'élement selectionné ?")) {
                grid.DeleteRow(grid.GetFocusedRowIndex());
            }
        }
        else if (name = "Excel")
        {
           //What to do here?
        }
    }


</script>
  //The export function (C#)
  protected void btnXlsExport_Click(object sender, EventArgs e)
{
    gridExport.WriteXlsToResponse();
}

如何在我的脚本中调用导出函数。谢谢。

2 个答案:

答案 0 :(得分:1)

如前所述,您只能在回发后从服务器站点导出GridView。您可以在gridview隐藏控件附近添加,例如下面的代码

<dx:ASPxButton runat="server" ID="_exportBtn" ClientInstanceName="_exportBtn" ClientVisible="false" OnClick="OnClickExport" />

将卸载代码移动到OnClickExport方法

    public void OnClickExport(object sender, EventArgs args)
    {
        gridExport.WriteXlsxToResponse();
    }

然后从客户端代码

单击它
    else if (name = "Excel")
    {
       //What to do here?
       _exportBtn.OnClick();
    }

答案 1 :(得分:0)

  

ASPxGridView不允许在客户端上导出其内容   侧。您只能在服务器端完成此任务。这个任务   只能通过回发在服务器端完成。

参见:
How to export ASPxGridView content on the client side
ASPxGridView - How to export the grid on the client side

参见:
Exporting Data - Exporting to PDF, XLS, XLSX and RTF

修改
资料来源:ASPxGridView - How to export ASPxGridView via a callback

由于回调设计:回调的概念,在处理回调时无法导出和下载文件。要解决此问题,请通过ASPxButton发送完整的回发。在这种情况下,您将能够在ASPxButton.Click事件处理程序中导出网格数据。请注意,您需要将ASPxGridView绑定到依赖于ASPxtabControl的活动选项卡的相应数据源。

例:
// Buttton Markup

<dx:ASPxButton ID="btnXlsExport" runat="server" AutoPostBack="False"  ClientInstanceName="btnXlsExport" UseSubmitBehavior="true"                         OnClick="btnXlsExport_Click" Text="Export">
</dx:ASPxButton>

//使用ASPxClientButton.DoClick Method

在您的JavaScript代码中直接调用它
else if (name = "Excel")
{
  btnXlsExport.DoClick();
}