读书人

100 分!不想让页面刷新如何才能把这

发布时间: 2012-02-01 16:58:19 作者: rapoo

100 分!!!不想让页面刷新,怎么才能把这个功能改成用 javascript 实现呢,这样就不用刷新页面了!


功能截图在这里,只要看一下就能全明白我的意思:

http://www.jilinhome.com/xml/demo1.gif


----------------------------------
一个能同时多附件上传的例子:

multipleupload.aspx 代码:

<INPUT id= "FindFile " type= "file " name= "FindFile " runat= "server ">

<asp:button id= "AddFile " runat= "server " Text= "添加附件到附件框 "> </asp:button>

<asp:button id= "RemvFile " runat= "server " Text= "删除一个附件 "> </asp:button>


<asp:listbox id= "ListBox1 " runat= "server "> </asp:listbox>

-------------------------------------------------------

对应 multipleupload.aspx.CS 后台代码:


//先定义一个公共变量,ArrayList ,存放多个填加的 FindFile

static public ArrayList hif = new ArrayList();

这个是后台添加附件到 ListBox1 框中的方法

private void AddFile_Click(object sender, System.EventArgs e)
{

string listname = System.IO.Path.GetFileName(FindFile.PostedFile.FileName);
if(listname!= " ")
{
hif.Add(FindFile);
ListBox1.Items.Add(listname);
}
}

以下是循环上传多个附件的方法:

foreach(System.Web.UI.HtmlControls.HtmlInputFile HIF in hif)
{
....... //略

HIF.PostedFile.SaveAs(baseLocation + UploadFileFullName);

}

------------------------

我现在想把 AddFile_Click 方法改一下,用 javascript 来实现把 findfiel 添加到 listbox 中,这样不会刷新页面,但是原来.CS 文件的这两上方法用 javascript 如何能实现呢?


private void AddFile_Click(object sender, System.EventArgs e)
{

string listname = System.IO.Path.GetFileName(FindFile.PostedFile.FileName);
if(listname!= " ")
{
hif.Add(FindFile); //如果改成用 javascript 来实现,这个要怎么能实现呢?
ListBox1.Items.Add(listname); //这个用 javascript 较容易实现
}
}




[解决办法]
<DIV id= "div1 ">
<INPUT ID= "File1 " TYPE= "file " NAME= "File1 " RUNAT= "server "> <INPUT TYPE= "button " VALUE= "Button " onclick= "javascript:AddFile(); ">
<ASP:LISTBOX id= "ListBox1 " runat= "server "> </ASP:LISTBOX>
<ASP:BUTTON id= "Button1 " runat= "server " Text= "Button "> </ASP:BUTTON> </FONT>
</DIV>


<SCRIPT language= "javascript ">
<!--
function AddFile()
{
var file = document.getElementById( "div1 ").firstChild;
if(file.value == " ")
{
alert( "请选择文件! ");
return;
}
var o = new Option();
var ary = file.value.split( "\\ ");
var filename = ary[ary.length-1];
o.innerText = filename;


o.value = filename;
document.getElementById( "ListBox1 ").appendChild(o);

file.style.display = "none ";
var f = document.createElement( "input ");
f.type = "file ";
f.name = "file "
div1.insertBefore(f,div1.firstChild);



}
//-->
</SCRIPT>
[解决办法]
后台用
HttpFileCollection files = HttpContext.Current.Request.Files;
System.Text.StringBuilder strMsg = new System.Text.StringBuilder();
strMsg.Append( "上传的文件分别是: <hr color=red> ");
try
{
for(int iFile = 0; iFile < files.Count; iFile++)
{
HttpPostedFile postedFile = files[iFile];
string fileName, fileExtension;
fileName = System.IO.Path.GetFileName(postedFile.FileName);
if (fileName != " ")
{
fileExtension = System.IO.Path.GetExtension(fileName);
strMsg.Append( "上传的文件类型: " + postedFile.ContentType.ToString() + " <br/> ") ;
strMsg.Append( "客户端文件地址: " + postedFile.FileName + " <br/> ");
strMsg.Append( "上传文件的文件名: " + fileName + " <br/> ");
strMsg.Append( "上传文件的扩展名: " + fileExtension + " <br/> <hr> ");
postedFile.SaveAs(System.Web.HttpContext.Current.Request.MapPath( "upload/ ") + fileName);
}
}
strStatus.Text = strMsg.ToString();
//return true;
}
catch(System.Exception Ex)
{
strStatus.Text = Ex.Message;
//return false;
}

读书人网 >asp.net

热点推荐