step 2: Code Behind
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using Telerik.Web.UI;
using TestModel;
public partial class EFWithTelerik : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
getImageDetails();
}
}
protected void btnSave_Click(object sender, EventArgs e)
{
saveImages();
}
//saveImages method is used to store the image data in database
//using entity framework
private void saveImages()
{
if (RadUploadImage.UploadedFiles.Count > 0)
{
string fileName = string.Empty;
long fileSize = 0;
string filePath = string.Empty;
string getPath = string.Empty;
string pathToStore = string.Empty;
string finalPathToStore = string.Empty;
foreach (UploadedFile file in RadUploadImage.UploadedFiles)
{
fileName = file.GetName();
fileSize = file.ContentLength;
filePath = Server.MapPath("Images/" + System.Guid.NewGuid() + fileName);
file.SaveAs(filePath);
}
try
{
//get the stored file name
int getPos = filePath.LastIndexOf("\\");
int len = filePath.Length;
getPath = filePath.Substring(getPos, len - getPos);
pathToStore = getPath.Remove(0, 1);
finalPathToStore = "~/Images/" + pathToStore;
//saving image details in database using entity model
TestEntities objEntities = new TestEntities();
ImageDetail objImageDetail = new ImageDetail();
objImageDetail.ImageName = fileName;
objImageDetail.ImagePath = finalPathToStore;
objImageDetail.ImageSize = (int)fileSize;
objEntities.ImageDetails.AddObject(objImageDetail);
objEntities.SaveChanges();
lblStatus.Text = "Image has been uploaded";
getImageDetails();
}
catch (Exception ex)
{
lblStatus.Text = "Error" + ex.Message;
}
finally
{
}
}
}
//getImageDetails method fetch images data from db and shows in grid
private void getImageDetails()
{
TestEntities objEntities = new TestEntities();
try
{
rgImages.DataSource = objEntities.ImageDetails;
rgImages.DataBind();
}
catch (Exception ex)
{
}
}
protected void rgImages_PageIndexChanged(object sender, GridPageChangedEventArgs e)
{
rgImages.CurrentPageIndex = e.NewPageIndex;
getImageDetails();
}
protected void rgImages_NeedDataSource(object sender, GridNeedDataSourceEventArgs e)
{
getImageDetails();
}
}