问题描述
我在上传多个文件后,怎么动态的用HyperLink链接绑定(动态的创建HyperLink),使它在这页面上可以直接打开protectedvoidButton1_Click(objectsender,EventArgse){stringfilepath=Server.MapPath("upload")+"\";HttpFileCollectionuploadFiles=Request.Files;for(inti=0;i<uploadFiles.Count;i++){HttpPostedFilepostedFile=uploadFiles[i];try{if(postedFile.ContentLength>0){//Label1.Text+="文件#"+(i+1)+":"+System.IO.Path.GetFileName(postedFile.FileName)+"<br/>";postedFile.SaveAs(filepath+System.IO.Path.GetFileName(postedFile.FileName));Add();}}}}//动态创建HyperLink控件,但是代码有问题,没写好privatevoidAdd(){//HyperLinkhlk=newHyperLink();//hlk.ID=this.FileUpload1.FileName;//hlk.NavigateUrl=Server.MapPath("upload")+"\"+this.FileUpload1.FileName;//hlk.Text=this.FileUpload1.FileName;HyperLink[]lblArray;lblArray=newHyperLink[3];for(inti=0;i<3;i++){lblArray[i]=newHyperLink();lblArray[i].NavigateUrl=Server.MapPath("upload")+"\"+this.FileUpload1.FileName;lblArray[i].Text=this.FileUpload1.FileName;}this.Controls.Add(lblArray);//这里代码也出错,,最匹配的重载方法具有一些无效参数}
解决方案
解决方案二:
并且每次打开页面的时候我要它也都要绑定显示,既每次都可以直接查看有哪些个文件被上传,可链接查看
解决方案三:
//hlk.NavigateUrl=Server.MapPath("upload")+"\"+this.FileUpload1.FileName;不能用物理路径只能用相对路径
解决方案四:
this."page".Controls.Add(lblArray);加个page或者form容器之类的试试看。
解决方案五:
引用3楼zld_baggio的回复:
this."page".Controls.Add(lblArray);加个page或者form容器之类的试试看。
一样哦~~
解决方案六:
引用2楼suyiming的回复:
//hlk.NavigateUrl=Server.MapPath("upload")+"\"+this.FileUpload1.FileName;不能用物理路径只能用相对路径
也不行哦,页面上没有创建新的HyperLink控件
解决方案七:
lblArray[i].NavigateUrl=Server.MapPath("upload")+"\"+this.FileUpload1.FileName;看看这里取出来的值是相对路径吗
解决方案八:
没测试,大致这样protectedvoidButton1_Click(objectsender,EventArgse){stringfilepath=Server.MapPath("upload")+"\";HttpFileCollectionuploadFiles=Request.Files;for(inti=0;i<uploadFiles.Count;i++){HttpPostedFilepostedFile=uploadFiles[i];try{if(postedFile.ContentLength>0){postedFile.SaveAs(filepath+System.IO.Path.GetFileName(postedFile.FileName));HyperLinkhlk=newHyperLink();hlk.ID=this.FileUpload1.FileName;hlk.NavigateUrl=Server.MapPath("upload")+"\"+this.FileUpload1.FileName;hlk.Text=this.FileUpload1.FileName;this.Form.Controls.Add(hlk);}}finally{}}}
解决方案九:
引用6楼hebeijg的回复:
lblArray[i].NavigateUrl=Server.MapPath("upload")+"\"+this.FileUpload1.FileName;看看这里取出来的值是相对路径吗
是绝对的D:Webwanzhengupload2007072515304533.txt但是我改了NavigateUrl=@"~wanzheng/upload/"+this.FileUpload1.FileName;取出来是相对的啊~wanzheng/upload/20080316205746934.txt页面上没有创建一个HyperLink控件
解决方案十:
用PlaceHolder.
解决方案十一:
引用7楼amandag的回复:
没测试,大致这样protectedvoidButton1_Click(objectsender,EventArgse){stringfilepath=Server.MapPath("upload")+"\";HttpFileCollectionuploadFiles=Request.Files;for(inti=0;i<uploadFiles.Count;i++){HttpPostedFilepostedFile=uploadFiles[i];try{if(postedFil…
这样可以显示,但它就只能创建一个HyperLink,只链接一个最新上传的文件我想要效果的是把上传的文件可以显示链接,并且每次进去的时候也显示
解决方案十二:
PlaceHolder1.Controls.Add(hlk)