在UpdatePanel里面不能上传文件,但是我现在必须用到UpdatePanel,,不知道怎么做才好..有谁做过这方面的问题?帮我解决一下!

解决方案 »

  1.   

    <asp:UpdatePanel ID="UpdatePanel1" runat="server">
      <ContentTemplate>
      <asp:FileUpload ID="FileUpload1" runat="server" />
      </ContentTemplate>
      <Triggers>
      <asp:PostBackTrigger ControlID="FileUpload1" /> </Triggers>  
      </asp:UpdatePanel>
    加上红色的那一段
      

  2.   

    VS的 FileUpLoad 控件不支持在Ajax中的UpdatePanel内使用,
    如要在Ajax使用VS的 FileUpLoad,则要把 FileUpLoad放在UpdatePanel之外,这样页面会有刷新的
    我的解决方法是用第三方控件如:
    Anthem.dll//在:Web.config
    <controls>
      <add tagPrefix="anthem" namespace="Anthem" assembly="Anthem" />
      <!--上句是用Ajax上传控件Anthem的引用-->
      <add tagPrefix="asp" namespace="System.Web.UI" assembly="System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
      </controls>
    //以下的是大概是这个样子,连接数据库的字符串改为你的等等。
    //这是我现在能正常使用的代码,由于代码太多,不全复制了,而且有的参数是自定义的,较难看明白
    //aspx中:
    <anthem:Label ID="Label2" runat="server" Font-Size="10pt" ForeColor="Blue" Text="上传信息"></anthem:Label>
    <anthem:Image ID="Image1" runat="server" Height="125px" ImageUrl="~/Images/nopic.gif"
      Width="94px" />
    <anthem:Button ID="anthemUploadButton" runat="server" EnabledDuringCallBack="false" OnClick="anthemUploadButton_Click"
      Text="上传" Width="70px" TextDuringCallBack="uploading..." />//.cs中:
    protected void anthemUploadButton_Click(object sender, EventArgs e)
      {
    string filename = anthemFileUpload.FileName;
      string filenameid = System.DateTime.Now.ToString("yyyy-fff");
      //string serverpath = Server.MapPath("~/Picture/" + mymulu + "/") + filenameid + filename;
      string serverpath = Server.MapPath("~/Picture/" + mymulu + "/") + booksname;//以书名文件名保存
      string tppath = "~/Picture/" + mymulu + "/" + booksname;//图片数据库保存路径
      anthemFileUpload.SaveAs(serverpath);
      string showpath = Server.MapPath("~/Picture/temp/") + filenameid + filename;//本页显示刷新图片保存路径
      string tpshow = "~/Picture/temp/" + filenameid + filename;//本页显示刷新图片保存路径
      anthemFileUpload.SaveAs(showpath);
      Image1.ImageUrl = tpshow;//在本页显示相片要用anthem控件
      Image1.UpdateAfterCallBack = true;
      Label2.Text = "已上传到:" + tppath;// 已上传了封面图片数据库保存路径信息
      Label2.UpdateAfterCallBack = true;
      //图片路径更新到数据库的cover_picture字段
      //string sqlstr = "update booksdata set cover_picture=" + "'" + tppath + "'" + "where books_name=" + "'" + TextBox1.Text.ToString().Replace(" ", "") + "'";
      //sqlcon = new SqlConnection(strCon);
      //sqlcon.Open();
      //sqlcom = new SqlCommand(sqlstr, sqlcon);
      //sqlcom.ExecuteNonQuery();//更新图片保存路径
      //sqlcon.Close();} 
      

  3.   

    这个问题我昨天刚问了。。
    用最新ajax control toolkit 的AsyncFileUpload吧。。
    很简单的。。
    详细用法看下面的网页
    http://blog.csdn.net/soldierluo/archive/2009/11/23/4854510.aspx
      

  4.   

    去下载一个AjaxFileUploadHelper插件,,然后放在ScriptManager下面.就能解决问题了<asp:ScriptManager ID="ScriptManager1" runat="server">
    </asp:ScriptManager>
    <cc1:AjaxFileUploadHelper ID="AjaxFileUploadHelper1" runat="server" />
      

  5.   

    1,AsyncFileUpload
    2,或者如果upload控件在updatepanel内的话,定义updatepanel的异步触发方式为conditional,并制定其的异步触发器
      

  6.   

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

  7.   

    AjaxFileUploadHelper 我去下载了一个.在页面显示的时候说出错,但是运行没错.也能上传了.谢谢