啥也不多说了,代码如下:    <td>上传照片:</td>
    <td >
        <div style="position:relative; float:left">
        <asp:ScriptManager ID="ScriptManager" runat="server" EnablePartialRendering="true">
        </asp:ScriptManager>
        <asp:UpdatePanel ID="UpdatePanel" runat="server" RenderMode="Block" UpdateMode="Conditional">        
            <ContentTemplate>
              <fieldset style="border:0px;">
                <!--这里的文本框和图片主要是用来模拟UPLOADFILE控件-->
                <input name="txtUpload" id="txtUpload" type="text" class="input1" style=" margin-top:6px;" />
                <img src="images/upload_1.jpg" style="position:absolute; left: 185px; top: 5px; " alt="" />                <!--这个是上传按钮-->
                <asp:ImageButton ID="btn" runat="server" ImageUrl="~/images/upload.jpg" style="position:absolute; left: 275px; top: -1px; cursor:pointer" OnClick="Button_UpLoad" />
                
                <!--这是真正的UploadFile控件,设置成透明,覆盖到了上面的假控件上-->
                <asp:FileUpload ID="FileUpload" runat="server" CssClass="input1" 
                    style="position:absolute; left: 0px; top: 0px; height:22px; width:257px; filter:Alpha(opacity=0);opacity:0;-moz-opacity:0;  cursor:pointer" />
                
                <!--这个隐藏域用来存放上传成功后的图片名称-->
                <asp:HiddenField ID="hidPhotoName" runat="server" />
                  
                </fieldset>
            </ContentTemplate>
            <Triggers>
                <asp:PostBackTrigger ControlID="btn" />
            </Triggers>
          
        </asp:UpdatePanel>
      
        </div>
    </td>
以上是代码,能上传成功,但是每次点击 上传按钮 (ID="btn") 的时候总是会刷整个页面。到底哪里不对呢?

解决方案 »

  1.   

    FileUpload控件和UpdatePanel关系本来就不好:-)
      

  2.   

    我看到一段代码,把上传控件放到了自定义控件里面,然后放到了updatepanel里面,号称无刷新,
    难道这样做就行?
    不过我还没有验证。无刷新上传文件有什么好办法吗?
      

  3.   

    <asp:UpdatePanel ID="UpdatePanel1" runat="server"> 
    <Triggers><asp:PostBackTrigger ControlID="btnUpload" /></Triggers> 
      <ContentTemplate> 
    AjaxFileUploadHelper
      

  4.   

    w我之前也遇到过这样的情况,建议不要将FileUpload控件放到UpdatePanel中去,否则的话就会出问题...