ASP.NET:在网格视图上单击文件名时从数据库下载文件

时间:2014-06-16 16:24:25

标签: c# asp.net gridview download linkbutton

我有一个网格视图,显示员工的所有上传文件(来自SQL DB的数据)。

<asp:GridView ID="GridView1" runat="server"
AutoGenerateColumns="False" AllowPaging="true" ShowFooter="false" PageSize="5"
CssClass="table" AlternatingRowStyle-BackColor="WhiteSmoke"
HeaderStyle-BackColor="#6C7A95" HeaderStyle-BorderColor="#666666" HeaderStyle-BorderStyle="Solid" HeaderStyle-BorderWidth="2" HeaderStyle-ForeColor="White"
OnPageIndexChanging="OnPaging" EmptyDataText="No Documents">
    <Columns>
        <asp:BoundField DataField="file_name" HeaderText="File Name" />
        <asp:BoundField DataField="upload_date" HeaderText="Date (GMT -7)" />
        <asp:BoundField DataField="file_status" HeaderText="Status" />

        <asp:TemplateField HeaderText="Employee's Note">
            <ItemTemplate>
                 <a data-original-title='<%# Eval("emp_note")%>' href="#" class="demo-cancel-click" rel="tooltip"><i class="icon-book"></i></a>
             </ItemTemplate>
        </asp:TemplateField>

    </Columns>
</asp:GridView>

界面如下所示: enter image description here

我想归档这个:文件名将是一个链接按钮(或者最好的方式),当点击名称时,它将下载文件。所以我修改了文件名列:

<asp:TemplateField HeaderText =" File Name">
        <asp:ItemTemplate>
               <asp:LinkButton ID="lnkDownload" runat="server" 
                    OnClick="DownloadFile" Text='<%#Eval("file_name") %>' 
                    CommandArgument='<%# Eval("file_id") %>'></asp:LinkButton>
         </asp:ItemTemplate>
</asp:TemplateField>

但接口变为:(file_name消失了)

enter image description here

我如何得到我需要的东西?

1 个答案:

答案 0 :(得分:2)

您需要从asp:中删除ItemTemplate。您的标记应如下所示:

<asp:TemplateField HeaderText=" File Name">
    <ItemTemplate>
        <asp:LinkButton ID="lnkDownload" runat="server"
            OnClick="DownloadFile" Text='<%#Eval("file_name") %>'
            CommandArgument='<%# Eval("file_id") %>'></asp:LinkButton>
    </ItemTemplate>
</asp:TemplateField>

希望它有所帮助!