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