Hi
I have spent more than 10 days looking for code for AjaxFileUpload to use it with uploading images to folder and insert the image paht in database, and I could do this but my problem is updating Datalist after inserting the image, I don't want to refresh whole page, just refresh DataList only, I tryied many times to do this but I can't
please help me
this is my code
AJAXuploadimage.aspx
<%@PageLanguage="C#"AutoEventWireup="true"CodeFile="AJAXuploadimage.aspx.cs"Inherits="AJAXuploadimage" %>
<%@RegisterTagPrefix="act"Namespace="AjaxControlToolkit"Assembly="AjaxControlToolkit" %>
<!DOCTYPEhtml>
<htmlxmlns="http://www.w3.org/1999/xhtml">
<headrunat="server">
<title></title>
<styletype="text/css">
.auto-style1 {
width:100%;
}
</style>
</head>
<body>
<formid="form1"runat="server">
<div>
<act:ToolkitScriptManagerID="tsm"runat="server"/>
<br/><br/>
<act:AsyncFileUpload
ID="AsyncFileUpload1"
ThrobberID="throbber"
UploadingBackColor="yellow"
ErrorBackColor="red"
CompleteBackColor="green"
UploaderStyle="Modern"
PersistFile="true"
runat="server"OnUploadedComplete="AsyncFileUpload1_UploadedComplete"
OnClientUploadComplete="uploadComplete"OnClientUploadCompleteAll="UploadCompleteAll" />
<asp:ImageID="throbber"ImageUrl="~/mainwebsiteimage/uploading.gif"
style="display:none"runat="server"/>
<br/>
<br/>
<asp:ImageID="imgLoader"runat="server"ImageUrl="~/images/loader.gif"/>
<br/><br/>
<br/>
<br/>
<br/>
<br/>
Updating DataList
<br/>
<br/>
<div>
<asp:UpdatePanelID="UpdatePanel1"runat="server">
<ContentTemplate>
<asp:DataListID="DataList1"runat="server">
<ItemTemplate>
<tableclass="auto-style1">
<tr>
<td>
<asp:LabelID="Label1"runat="server"Text='<%# Eval("id") %>'></asp:Label>
</td>
<td>
<asp:LabelID="Label2"runat="server"Text='<%# Eval("ImageName") %>'></asp:Label>
</td>
</tr>
<tr>
<tdcolspan="2"style="text-align: center">
<asp:ImageID="Image1"runat="server"ImageUrl='<%# Eval("ImageUrl") %>'style="text-align: left"Width="100px"/>
</td>
</tr>
</table>
</ItemTemplate>
</asp:DataList>
</ContentTemplate>
<Triggers>
<asp:AsyncPostBackTriggerControlID="AsyncFileUpload1"EventName="UploadedComplete"/>
</Triggers>
</asp:UpdatePanel>
</div>
</div>
</form>
</body>
</html>
and this is
AJAXuploadimage.aspx.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Xml.Linq;
using System.Data.SqlClient;
using System.Data;
using System.Configuration;
public partialclassAJAXuploadimage : System.Web.UI.Page
{
SqlConnection conn = newSqlConnection(ConfigurationManager.ConnectionStrings["ConnectionString"].ToString());
publicstring filename;
publicstring Path;
protectedvoid Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
BindGrid();
}
}
protectedvoid AsyncFileUpload1_UploadedComplete(object sender, AjaxControlToolkit.AsyncFileUploadEventArgs e)
{
System.Threading.Thread.Sleep(5000);
if (AsyncFileUpload1.HasFile)
{
Path = ("~/uploads/"+ AsyncFileUpload1.FileName);
AsyncFileUpload1.SaveAs(Server.MapPath(Path));
string name = System.IO.Path.GetFileName(AsyncFileUpload1.PostedFile.FileName);
HttpPostedFile AttachFile = AsyncFileUpload1.PostedFile;
conn.Open();
uploadComplete(Path);
update();
BindGrid();
}
}
publicint uploadComplete(string Path)
{
String copyData = "INSERT INTO [Images] (ImageName, ImageUrl) VALUES ('"+ Path +"', '"+ Path +"')";
SqlCommand SECTION =newSqlCommand(copyData, conn);
SqlCommand mySqlCommand = newSqlCommand("SELECT * FROM [Table] ORDER BY [Id] DESC", conn);
SqlDataAdapter mySqlAdapter = newSqlDataAdapter(mySqlCommand);
DataSet myDataSet = newDataSet();
mySqlAdapter.Fill(myDataSet);
return SECTION.ExecuteNonQuery();
}
public void BindGrid()
{
string Sql ="select * from Images order by Id desc";
SqlDataAdapter da =newSqlDataAdapter(Sql, conn);
DataSet ds =newDataSet();
da.Fill(ds);
DataList1.DataSource = ds;
DataList1.DataBind();
}
I want to get like this Ajax tool ready for using in this link
http://www.asp.net/ajaxLibrary/AjaxControlToolkitSampleSite/AjaxFileUpload/AjaxFileUpload.aspx