现在有一个ASP.NET的界面,里面有一表单,在没有上传的时候,可以进行‘重置’清空,但是‘上传’之后,‘删除’上传的文件,则清空就无效了,源代码如下:。但是将其中一个<input type=“button”/>换成<buton />之后,在代码处写明事件,则可以正常清空了,请问是什么原因造成的呢?ASP.NET表单清空界面

解决方案 »

  1.   

    原来的是普通的html标签,你换成了后台的button(这个肯定有用的)。Html标签要用javascript在前台取文本框的clientId,然后在js里面清空。
      

  2.   

    加一个name标签,设置一个方法 得到name 讲name对应的表单value设置为null或者空字符串
      

  3.   

    那这引申出一个问题,普通的html标签要达到需求的功能,是必须要在js里面实现其功能?现在都是用服务器控件了吧?
      

  4.   


    我想你删除文件时,页面回调了。
    你测试一下,下面的代码 你就知道 为什么了<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
    <HTML>
     <HEAD>
      <TITLE> Tuoks </TITLE>
      <META NAME="Generator" CONTENT="EditPlus">
      <META NAME="Author" CONTENT="">
      <META NAME="Keywords" CONTENT="">
      <META NAME="Description" CONTENT="">
     </HEAD> <BODY>
      <form>
    <input value ='重置这里不会清空' />
    <input type="reset" value='重置'/ >
      </form>
     </BODY>
    </HTML>
      

  5.   

    代码如下: function DeleteAttachment(div_id,name,id)//删除附件
            { 
                CreateXMLHttpRequest();  
                if(id!=null)
                {
                    id="&ID="+id;
                }
                else
                {
                    id="";
                }
                xmlHttp.open('GET',"Delete.aspx?AttachName="+name+id,true);      
                xmlHttp.onreadystatechange=function()
                {       
                    if(xmlHttp.readyState==4 )
                    {    
                //在这里处理你页面中的表单控件,把返回值赋给表单对象
                   if(xmlHttp.responseText=="1")
                   {  
                        var AttachName= document.getElementById("hfAttach").value;
                        AttachName=AttachName.replace(name+"*","");
                        document.getElementById("hfAttach").value=AttachName;
                        document.getElementById(div_id).style.display="none";
                            document.getElementById("<%=this.hfTemp.ClientID %>").value = name + id;
                             __doPostBack("lbtnDelete", "");
                   }           
                     }
                }
                xmlHttp.send(null); 
            } 
      

  6.   

    服务器控件,在提交表单过后,服务器会自动记住里面的内容,就像是viewstate一样,比如说textbox 保存了里面的值,但是html控件,没有runat="server" 这个标志的话就不会记住状态,不会保存值
      

  7.   

       __doPostBack("lbtnDelete", "");这里有一个回调。删除文件后,页面刷新了。所以导致你的重置按钮的效果和你想象的不一样了。
    俩种方式:
    1. 用js把控件的内容清空。
    2. 在服务器端处理重置的功能。
    3. 删除文件不用使用回调服务器,直接在AJAX中处理。
      

  8.   


    我想你删除文件时,页面回调了。
    你测试一下,下面的代码 你就知道 为什么了<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
    <HTML>
     <HEAD>
      <TITLE> Tuoks </TITLE>
      <META NAME="Generator" CONTENT="EditPlus">
      <META NAME="Author" CONTENT="">
      <META NAME="Keywords" CONTENT="">
      <META NAME="Description" CONTENT="">
     </HEAD> <BODY>
      <form>
    <input value ='重置这里不会清空' />
    <input type="reset" value='重置'/ >
      </form>
     </BODY>
    </HTML>重置不了
      

  9.   


    我想你删除文件时,页面回调了。
    你测试一下,下面的代码 你就知道 为什么了<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
    <HTML>
     <HEAD>
      <TITLE> Tuoks </TITLE>
      <META NAME="Generator" CONTENT="EditPlus">
      <META NAME="Author" CONTENT="">
      <META NAME="Keywords" CONTENT="">
      <META NAME="Description" CONTENT="">
     </HEAD> <BODY>
      <form>
    <input value ='重置这里不会清空' />
    <input type="reset" value='重置'/ >
      </form>
     </BODY>
    </HTML>重置不了
    这个例子是让你知道 为什么重置不了
      

  10.   

    因为ViewState的原因,当控件的text值不为空时,重置无效的,简单的重置就是重新设置当前访问页面的地址
    <script>
    function reset()
    {
     location.href='asb.aspx';
    }
    </script>