在UpdatePanel里面不能上传文件,但是我现在必须用到UpdatePanel,,不知道怎么做才好..有谁做过这方面的问题?帮我解决一下!
解决方案 »
- 新手求教调试问题
- 关于DataGrid绑定数据显示在IE8和360浏览器样式
- 求一个一个数据库链接的访问SQL SERVER的基类,我作的网站,服务器提示用户过多,垮了,奉献自己用的基类
- 请知道ibatis的进来下
- 【网络问题帖】msc地址是什么?网吧把mac和ip地址绑定了?
- "语法错误 (操作符丢失) 在查询表达式
- Forms身份验证,超时后的页面跳转问题(框架)
- 急求datagrid的模版列radiobuttonlist 如何绑定数据
- 为什么我用label1.text=stringbuilder实例不能分页?
- C# 微信公众平台接口 获取二唯码出现问题。请大家帮忙
- 在基类母版页中如何获取母版页控件id值
- 鼠标滑过合并过的tr 后 tr合并后的行变色 但是未合并的就只有第一行变色 ???
<ContentTemplate>
<asp:FileUpload ID="FileUpload1" runat="server" />
</ContentTemplate>
<Triggers>
<asp:PostBackTrigger ControlID="FileUpload1" /> </Triggers> </asp: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();}
用最新ajax control toolkit 的AsyncFileUpload吧。。
很简单的。。
详细用法看下面的网页
http://blog.csdn.net/soldierluo/archive/2009/11/23/4854510.aspx
</asp:ScriptManager>
<cc1:AjaxFileUploadHelper ID="AjaxFileUploadHelper1" runat="server" />
2,或者如果upload控件在updatepanel内的话,定义updatepanel的异步触发方式为conditional,并制定其的异步触发器
<ContentTemplate>
<asp:FileUpload ID="FileUpload1" runat="server" />
</ContentTemplate>
<Triggers>
<asp:PostBackTrigger ControlID="FileUpload1" /> </Triggers> </asp:UpdatePanel>