У меня есть сетка, в которой имена файлов отображаются в виде кнопок ссылок. Но когда я нажимаю на кнопку ссылки, файл не открывается. Пожалуйста, см. Метод кода файла CS, чтобы открыть файл.
protected void OpenFile(object sender, EventArgs e)
{
LinkButton btn = (LinkButton)sender;
string fileName = btn.Attributes["FileName"].ToString();
string path = Server.MapPath(".") + "\\Files\\" + fileName;
if (File.Exists(path))
{
Response.AppendHeader("content-disposition", "attachment; filename=" + fileName);
string type = "Application/word";
if (type != "")
Response.ContentType = type;
Response.WriteFile(path);
Response.End();
}
else
{
}
//System.Diagnostics.Process.Start(@path);
//Response.Write(path);
}
Вот код Gridview:
<asp:GridView ID="gdvMainList" runat="server" CssClass="Grid"
AutoGenerateColumns="False" DataSourceID="dtsFilesUploaded"
AllowPaging="True" DataKeyNames="Id, FileName"
onrowdatabound="gdvMainList_RowDataBound">
<Columns>
<ucc:CommandFieldControl HeaderText="Actions" ShowDeleteButton="true" ButtonType="Image"
DeleteImageUrl="~/App_Themes/Default/images/delete.png" ShowEditButton="true"
EditImageUrl="~/App_Themes/Default/images/edit.png" ShowCancelButton="true" CancelImageUrl="~/App_Themes/Default/images/cancel.png"
UpdateImageUrl="~/App_Themes/Default/images/update.png" DeleteConfirmationText="Are you sure you want to delete?">
<ItemStyle HorizontalAlign="Center" Width="60px" />
<HeaderStyle HorizontalAlign="Center" />
</ucc:CommandFieldControl>
<asp:TemplateField HeaderText="File Name">
<ItemTemplate>
<asp:LinkButton ID="lblFileName" runat="server" Text='<%# Bind("FileName") %>' OnClick="OpenFile" CausesValidation="false"></asp:LinkButton>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Uploaded On">
<ItemTemplate>
<asp:Label ID="lblCreatedDate" runat="server" Text='<%# Bind("CreatedDateTime","{0:d}") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Category">
<ItemTemplate>
<asp:Label ID="lblglCategoryId" runat="server" Text='<%# Bind("glCategoryId") %>'>' ></asp:Label>
</ItemTemplate>
<EditItemTemplate>
<asp:DropDownList ID="ddlglCategoryId" runat="server" CssClass="textEntry2" DataSourceID="dtsglCategoryId"
DataTextField="LookupItem" DataValueField="Id" AppendDataBoundItems="true">
</asp:DropDownList>
</EditItemTemplate>
</asp:TemplateField>
<asp:BoundField DataField="Description" HeaderText="Description" ReadOnly="true" />
</Columns>
<EmptyDataTemplate>
<div class="divEmptyListingGrid">
--- No Files Exists ---
</div>
</EmptyDataTemplate>
</asp:GridView>
Любая помощь будет оценена. Спасибо!