【问题标题】:Download Excel On Link Button click in Telerik RadGrid下载 Excel On Link 按钮单击 Telerik RadGrid
【发布时间】:2018-02-02 04:48:28
【问题描述】:

我在更新面板中有一个 Telerik RadGrid。 RadGrid 中的一列具有链接按钮。单击按钮时,我想导出一个 excel 文件。 我已经编写了代码,当我单击链接按钮时,页面刷新并且没有发生下载。我尝试使用锚标记而不是链接按钮,但它没有用。

我的 ASP.net 代码在这里

<telerik:RadAjaxPanel runat="server" LoadingPanelID="RadAjaxLoadingPanel1">
                                <telerik:RadGrid ID="GridViewAllRequests" runat="server" CssClass="ms-listviewtable" border="0" BorderStyle="None" HeaderStyle-BorderStyle="None" CellPadding="4" GridLines="None" Width="100%"
                                    AutoGenerateColumns="False" AllowFilteringByColumn="True" MasterTableView-ShowFooter="false" ShowStatusBar="false"
                                    AllowPaging="True" PageSize="25" AllowSorting="true" MasterTableView-AllowMultiColumnSorting="true" EnableLinqExpressions="false"
                                    ShowHeaderWhenEmpty="true" ShowFooter="false" DataSourceID="LinqDsGridViewAllRequests" OnItemCreated="RadGrid_ItemCreated" On>
                                    <GroupingSettings CaseSensitive="false"></GroupingSettings>
                                    <MasterTableView DataSourceID="LinqDsGridViewAllRequests" DataKeyNames="RequestName" AutoGenerateColumns="false" PagerStyle-ShowPagerText="false" PagerStyle-Mode="NextPrevAndNumeric" HeaderStyle-Font-Bold="true" HeaderStyle-ForeColor="Blue" ShowFooter="false">
                                        <Columns>
                                            <telerik:GridTemplateColumn DataField="RequestName" HeaderText="Request Name" UniqueName="RequestName" HeaderStyle-CssClass="ms-vh2"
                                                SortExpression="RequestName">

                                                <ItemTemplate>
                                                    <asp:LinkButton ID="lblRequestName"   ForeColor="Blue" CommandArgument='<%# Eval("RequestName") %>' CommandName="onclick" OnCommand="RequestNameLinkButton_Click" runat ="server" Text='<%# Eval("RequestName") %>'></asp:LinkButton>
                                                </ItemTemplate>
                                                <HeaderStyle CssClass="ms-vh2" />
                                                <ItemStyle CssClass="talCell4Grid" HorizontalAlign="Left" VerticalAlign="Top" />
                                            </telerik:GridTemplateColumn>

在代码中,lblRequestName 是我要用于下载 excel 的 LinkBut​​ton。

【问题讨论】:

    标签: asp.net gridview telerik telerik-grid


    【解决方案1】:

    尝试使用if (!IsPostBack)将所有代码包装在Page_Load函数中,它可以防止点击按钮时页面重新加载。

    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            //some code about page load
        }
    }
    

    【讨论】:

    • 在这种情况下我将不得不更改很多代码。有没有一种方法,只有链接按钮不会重新加载页面并导致 excel 下载
    • 还有一种方法,可以使用jquery ajax,不会触发页面加载,但是比添加if (!IsPostBack)复杂多了
    • 另外我想在点击其他控件的情况下进行回发,所以最好只为一个链接按钮禁用页面加载
    • 在网格上添加 ajax 以停止页面重新加载。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-10-16
    • 1970-01-01
    • 1970-01-01
    • 2011-08-08
    • 1970-01-01
    • 1970-01-01
    • 2014-02-22
    相关资源
    最近更新 更多