我有一个网格,文件名显示为链接按钮。但是当我点击链接按钮时,文件无法打开。请参阅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>
任何帮助将不胜感激。谢谢 !
你可以试试“字符串路径=” ...行puttin一个断点,看到该变量路径获取正确的文件路径。 – 2011-03-31 07:09:34
究竟是什么问题?你是否遇到异常? OpenFile甚至被执行了吗? – 2011-03-31 07:10:22
@Elad Lachmi:路径具有价值。我检查了它。 @Daniel Hilgarth:没有发生异常。但是我的aspx代码在更新窗格中。这是问题吗? – asma 2011-03-31 07:46:07