单击链接时,ModalPopupExtender应显示pdf文件 [英] ModalPopupExtender should display pdf file when you click on link

查看:75
本文介绍了单击链接时,ModalPopupExtender应显示pdf文件的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我将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 LinkBut​​ton).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 LinkBut​​ton).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:LinkBut​​ton ID = lnkDownload 文本 = 下载 CommandArgument =' <% #Eval( %> ' runat = server OnClick = DownloadFile > < / asp:LinkBut​​ton >
< / ItemTemplate >
< / asp:TemplateField >
< asp:TemplateField >
< ItemTemplate >
< asp:LinkBut​​ton 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:LinkBut​​ton 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 />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
        <asp:Label ID="Label3" runat="server" style="font-weight: 700"

            Text="Uploading Files"></asp:Label>
        <br />
        <br />
        <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
        <asp:FileUpload ID="FileUpload1" runat="server" />
       
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
        <asp:Button ID="Button1" runat="server" onclick="Button1_Click" Text="Upload" />
&nbsp;
        
        <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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆