单击链接时,ModalPopupExtender应显示pdf文件 [英] ModalPopupExtender should display pdf file when you click on link
问题描述
我将pdf文件上传到我的asp.net项目。然后,我在gridview中显示上传的文件,并具有下载,删除和查看文件的选项。如何让modalpopupextender知道上传文件的路径并显示它?我希望在点击视图链接按钮后显示modalpopup。
我没有使用SqlDataSource。到目前为止,这是我的代码:
protected void Page_Load( object sender,EventArgs e)
{
if (!IsPostBack)
{
string [] filePaths = Directory.GetFiles(Server.MapPath( 〜/ Uploads /));
List< ListItem> files = new List< ListItem>();
foreach ( string filePath in filePaths)
{
files.Add( new ListItem(Path.GetFileName(filePath),filePath));
}
GridView1.DataSource = files;
GridView1.DataBind();
}
}
受保护 void Button1_Click( object sender,EventArgs e)
{
if (FileUpload1.HasFile)
尝试
{
string fileName = Path.GetFileName(FileUpload1。 PostedFile.FileName);
FileUpload1.PostedFile.SaveAs(Server.MapPath( 〜/ Uploads /)+文件名);
Response.Redirect(Request.Url.AbsoluteUri);
}
catch (例外情况)
{
Label1.Text = 错误: + ex.Message.ToString();
}
else
{
Label1.Text = 您尚未指定文件。;
}
}
受保护 void DownloadFile( object sender,EventArgs e)
{
string filePath =(sender as LinkButton).CommandArgument;
Response.ContentType = ContentType;
Response.AppendHeader( Content-Disposition, attachment; filename = + Path.GetFileName(filePath));
Response.WriteFile(filePath);
Response.End();
}
受保护 void DeleteFile( object <> span sender,EventArgs e)
{
string filePath =(sender as LinkButton).CommandArgument;
File.Delete(filePath);
Response.Redirect(Request.Url.AbsoluteUri);
}
受保护 void ViewFile( object sender,EventArgs e)
{
}
到目前为止,这是我的设计页面:
< style type = text / css >
.ModalPopupBG
{
background-color:#666699;
filter:alpha(opacity = 50);
不透明度:0.7;
}
.popupControl
{
background-color:#AAD4FF;
仓位:绝对;
可见性:隐藏;
border-style:solid;
border-color:黑色;
border-width:2px;
}
< / style >
< / head >
< body >
< 表格 < span class =code-attribute> id = form1 runat = server >
< div >
< h2 >
< asp:标签 ID = Label2 runat = server
style = font-size:larger; font-weight:700 文字 = 文档管理系统 > < ; / asp:标签 >
< / h2 >
< br / >
< br / >
& nbsp;& nbsp;& nbsp;& nbsp;& nbsp;& nbsp;& nbsp;& nbsp;& nbsp;&安培; NBSP;&安培; NBSP;
< asp:标签 ID = Label3 runat = 服务器 style = font-weight:700
正文 = 上传文件 > < / asp:Label >
< br / >
< br / >
< br / >
& nbsp;& nbsp;& nbsp;& nbsp;& nbsp;& nbsp;& nbsp;& nbsp;& nbsp;& nbsp;& nbsp;
< asp:FileUpload ID = FileUpload1 runat = 服务器 / >
& nbsp;& nbsp;& nbsp;& nbsp;& nbsp;& nbsp;& nbsp;& nbsp;& nbsp;& NBSP;&安培; NBSP;
< asp:按钮 ID = Button1 runat = 服务器 onclick = Button1_Click 文字 < span class =code-keyword> = 上传 / >
& nbsp;
< asp:Label ID = Label4 runat = 服务器 > < / asp:标签 >
< asp:标签 ID = Label1 runat = server > < / asp:标签 >
< asp:GridView ID = GridView1 runat = server AutoGenerateColumns = False
EmptyDataText < span class =code-keyword> = 没有上传的文件 高度 = 183px
style = text-align:center; margin-left:20px 宽度 = 601px >
< 列 >
< asp:BoundField DataField = 文字 HeaderText = 文件名 / >
< asp:TemplateField HeaderText = 参考编号 >
< EditItemTemplate >
< asp:TextBox ID = TextBox1 runat = server > < / asp:TextBox >
< / EditItemTemplate >
< ItemTemplate >
< asp:TextBox ID = TextBox7 runat = 服务器 > < / asp:TextBox >
< / ItemTemplate中跨度> >
< / asp:TemplateField >
< asp :TemplateField HeaderText = 说明 >
< EditItemTemplate >
< asp:TextBox ID = TextBox2 RUNAT = server > < / asp:TextBox >
< / EditItemTemplate >
< ItemTemplate >
< asp:TextBox ID = TextBox5 runat = server > < / asp:TextBox >
< / ItemTemplate >
< / asp:TemplateField < span class =code-keyword>>
< asp:TemplateField HeaderText = 类别 >
< < span class =code-leadattribute> EditItemTemplate >
< asp:TextBox ID = TextBox3 runat = 服务器 > < / asp:TextBox >
< / EditItemTemplate >
< ItemTemplate >
< asp:TextBox ID = TextBox6 runat = server > < / asp:TextBox >
< / ItemTemplate >
< / asp:TemplateField >
< asp:TemplateField >
< ItemTemplate >
< asp:LinkButton ID = lnkDownload 文本 = 下载 CommandArgument =' <% #Eval( 值)%> ' runat = server OnClick = DownloadFile > < / asp:LinkButton >
< / ItemTemplate >
< / asp:TemplateField >
< asp:TemplateField >
< ItemTemplate >
< asp:LinkButton ID < span class =code-attribute> = lnkDelete 文本 = 删除 CommandArgument < span class =code-attribute> =' < ;% #Eval( Value)%> ' runat = server OnClick = DeleteFile / >
< / ItemTemplate >
< / asp:TemplateField >
< asp:TemplateField >
< ItemTemplate >
< asp :HyperLink ID = title runat = server NavigateUrl = 〜/ red.htm > HyperLink < / asp:HyperLink >
< asp:LinkButton ID = lnkView 文本 = 查看 CommandArgument =' <% #Eval( Value)%> ' runat = server OnClick = ViewFile / >
< asp:Panel ID = pnlUpload runat = server 高度 = 406px 宽度 = 782px >
< asp:Bu tton ID = closeBtn runat = server 文字 = 关闭 / >
< / asp:Panel >
<asp:ModalPopupExtender ID=\"lnkView_ModalPopu pExtender\" runat=\"server\"
DynamicServicePath=\"\" Enabled=\"True\" TargetControlID=\"lnkView\" PopupControlID=\"pnlUpload\" BackgroundCssClass=\"ModalPopupBG\" OkControlID=\"closeBtn\">
</asp:ModalPopupExtender>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField></asp:TemplateField>
</Columns>
</asp:GridView>
<asp:ToolkitScriptManager ID=\"ToolkitScriptManager1\" runat=\"server\">
</asp:ToolkitScriptManager>
Please help. Thank you in advance
I haven’’t been able to use the modalpopupextender and panel. I removed the controls from my design page. However, I added code to the ViewFile click event:
protected void ViewFile(object sender, EventArgs e)
{
LinkButton lnk = (LinkButton)sender;
if (lnk != null)
{
string filePath = (sender as LinkButton).CommandArgument;
Response.AddHeader(\"content-disposition\", \"attachment; filename=\" + Path.GetFileName(filePath) + \".pdf\");
Response.WriteFile(Server.MapPath(\"~/Uploads/\" + Path.GetFileName(filePath)));
Response.End();
}
}
When I click on the View link button, the .pdf file appears. I still would like to view it in a modalpopupextender or even an iframe.
I still welcome suggestions. :)
I am uploading pdf files to my asp.net project. I then display the uploaded files in a gridview and have options to download, delete and view the files. How do I make the modalpopupextender know the path of the uploaded file and display it? I want the modalpopup to display once I have clicked on the ''view'' link button.
I am not using a SqlDataSource. Here''s my code so far:
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
string[] filePaths = Directory.GetFiles(Server.MapPath("~/Uploads/"));
List<ListItem> files = new List<ListItem>();
foreach (string filePath in filePaths)
{
files.Add(new ListItem(Path.GetFileName(filePath), filePath));
}
GridView1.DataSource = files;
GridView1.DataBind();
}
}
protected void Button1_Click(object sender, EventArgs e)
{
if (FileUpload1.HasFile)
try
{
string fileName = Path.GetFileName(FileUpload1.PostedFile.FileName);
FileUpload1.PostedFile.SaveAs(Server.MapPath("~/Uploads/") + fileName);
Response.Redirect(Request.Url.AbsoluteUri);
}
catch (Exception ex)
{
Label1.Text = "ERROR: " + ex.Message.ToString();
}
else
{
Label1.Text = "You have not specified a file.";
}
}
protected void DownloadFile(object sender, EventArgs e)
{
string filePath = (sender as LinkButton).CommandArgument;
Response.ContentType = ContentType;
Response.AppendHeader("Content-Disposition", "attachment; filename=" + Path.GetFileName(filePath));
Response.WriteFile(filePath);
Response.End();
}
protected void DeleteFile(object sender, EventArgs e)
{
string filePath = (sender as LinkButton).CommandArgument;
File.Delete(filePath);
Response.Redirect(Request.Url.AbsoluteUri);
}
protected void ViewFile(object sender, EventArgs e)
{
}
Here is my design page so far:
<style type="text/css">
.ModalPopupBG
{
background-color: #666699;
filter: alpha(opacity=50);
opacity: 0.7;
}
.popupControl
{
background-color:#AAD4FF;
position:absolute;
visibility:hidden;
border-style:solid;
border-color:Black;
border-width: 2px;
}
</style>
</head>
<body>
<form id="form1" runat="server">
<div>
<h2>
<asp:Label ID="Label2" runat="server"
style="font-size: larger; font-weight: 700" Text="Document Management System"></asp:Label>
</h2>
<br />
<br />
<asp:Label ID="Label3" runat="server" style="font-weight: 700"
Text="Uploading Files"></asp:Label>
<br />
<br />
<br />
<asp:FileUpload ID="FileUpload1" runat="server" />
<asp:Button ID="Button1" runat="server" onclick="Button1_Click" Text="Upload" />
<asp:Label ID="Label4" runat="server"></asp:Label>
<asp:Label ID="Label1" runat="server"></asp:Label>
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False"
EmptyDataText = "No files uploaded" Height="183px"
style="text-align: center; margin-left: 20px" Width="601px" >
<Columns>
<asp:BoundField DataField="Text" HeaderText="File Name" />
<asp:TemplateField HeaderText="Reference No.">
<EditItemTemplate>
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
</EditItemTemplate>
<ItemTemplate>
<asp:TextBox ID="TextBox7" runat="server"></asp:TextBox>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Description">
<EditItemTemplate>
<asp:TextBox ID="TextBox2" runat="server"></asp:TextBox>
</EditItemTemplate>
<ItemTemplate>
<asp:TextBox ID="TextBox5" runat="server"></asp:TextBox>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Category">
<EditItemTemplate>
<asp:TextBox ID="TextBox3" runat="server"></asp:TextBox>
</EditItemTemplate>
<ItemTemplate>
<asp:TextBox ID="TextBox6" runat="server"></asp:TextBox>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField>
<ItemTemplate>
<asp:LinkButton ID="lnkDownload" Text = "Download" CommandArgument = '<%# Eval("Value") %>' runat="server" OnClick = "DownloadFile"></asp:LinkButton>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField>
<ItemTemplate>
<asp:LinkButton ID = "lnkDelete" Text = "Delete" CommandArgument = '<%# Eval("Value") %>' runat = "server" OnClick = "DeleteFile" />
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField>
<ItemTemplate>
<asp:HyperLink ID="title" runat="server" NavigateUrl="~/red.htm">HyperLink</asp:HyperLink>
<asp:LinkButton ID = "lnkView" Text = "View" CommandArgument = '<%# Eval("Value") %>' runat = "server" OnClick = "ViewFile" />
<asp:Panel ID="pnlUpload" runat="server" Height="406px" Width="782px">
<asp:Button ID="closeBtn" runat="server" Text="Close" />
</asp:Panel>
<asp:ModalPopupExtender ID="lnkView_ModalPopupExtender" runat="server"
DynamicServicePath="" Enabled="True" TargetControlID="lnkView" PopupControlID="pnlUpload" BackgroundCssClass="ModalPopupBG" OkControlID="closeBtn">
</asp:ModalPopupExtender>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField></asp:TemplateField>
</Columns>
</asp:GridView>
<asp:ToolkitScriptManager ID="ToolkitScriptManager1" runat="server">
</asp:ToolkitScriptManager>
Please help. Thank you in advance
I haven''t been able to use the modalpopupextender and panel. I removed the controls from my design page. However, I added code to the ViewFile click event:
protected void ViewFile(object sender, EventArgs e) { LinkButton lnk = (LinkButton)sender; if (lnk != null) { string filePath = (sender as LinkButton).CommandArgument; Response.AddHeader("content-disposition", "attachment; filename=" + Path.GetFileName(filePath) + ".pdf"); Response.WriteFile(Server.MapPath("~/Uploads/" + Path.GetFileName(filePath))); Response.End(); } }
When I click on the View link button, the .pdf file appears. I still would like to view it in a modalpopupextender or even an iframe.
I still welcome suggestions. :)
这篇关于单击链接时,ModalPopupExtender应显示pdf文件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!