Tuesday, 12 August 2014

radgrid with xml

 private void BindCustomerDetails1()
    {
        DataSet dsCustomer = new DataSet();
        dsCustomer.ReadXml(Server.MapPath("Customer.xml"));
        RadGrid1.DataSource = dsCustomer;
       
    }
    protected void RadGrid1_NeedDataSource(object sender, Telerik.Web.UI.GridNeedDataSourceEventArgs e)
    {
        BindCustomerDetails1();
    }

Telerik gridview with folder details

public partial class DirectoryGrid : System.Web.UI.UserControl
    {
        List objFileList;
        String path;
        protected void Page_Load(object sender, EventArgs e)
        {
            path = System.Configuration.ConfigurationManager.AppSettings["Path"].ToString();

            bindTree(path);

        }

        private void bindTree(string path)
        {
            if (!string.IsNullOrEmpty(path))
            {
                try
                {

                    DirectoryInfo objDirectoryInfo = new DirectoryInfo(path);
                    RadTreeNode objRadTreeNode = new RadTreeNode(objDirectoryInfo.Name);
                    objFileList = new List();
                    objFileList.Clear();
                    LoadDirectoriesAndFiles(objDirectoryInfo, objRadTreeNode);

                    rgDirectory.DataSource = objFileList;
                }
                catch (Exception ex)
                {
                }
            }
        }
        // Load Directory and file from given Root into Treeview

        private void LoadDirectoriesAndFiles(DirectoryInfo dir, RadTreeNode parentNode)
        {

            foreach (FileInfo f in dir.GetFiles())
            {
                try
                {
                    FileDetail objFileDetail = new FileDetail() { FileName = f.Name, FileSize = f.Length };
                    objFileList.Add(objFileDetail);
                }
                catch (Exception)
                {
                }
            }

            foreach (DirectoryInfo d in dir.GetDirectories())
            {
                try
                {
                    FileDetail objFileDetail = new FileDetail() { FileName = d.Name };
                    objFileList.Add(objFileDetail);

                    RadTreeNode dirNode = new RadTreeNode(d.Name);
                    //LoadDirectoriesAndFiles(d, dirNode);
                }
                catch (Exception ex)
                {
                }
            }
        }

        public class FileDetail
        {
            public string FileName { get; set; }
            public long FileSize { get; set; }
        }
        protected void RadGridDir_NeedDataSource(object sender, GridNeedDataSourceEventArgs e)
        {
            (sender as RadGrid).DataSource = objFileList;
        }
        protected void RadGridDir_SortCommand(object sender, GridSortCommandEventArgs e)
        {

        }

        protected void rgDirectory_ItemDataBound(object sender, GridItemEventArgs e)
        {
            if (e.Item is GridDataItem)
            {
                GridDataItem dataItem = e.Item as GridDataItem;
                LinkButton lnkbtn = (LinkButton)dataItem.FindControl("lnkView");
                Label lblfileSize = (Label)dataItem.FindControl("lblFileSize");
                int fileSize = Convert.ToInt32(lblfileSize.Text);
                if (fileSize > 0)
                {
                    lnkbtn.Enabled = false;
                }

            }
        }

        protected void lnkView_Click1(object sender, EventArgs e)
        {
            LinkButton button = sender as LinkButton;
            string newpath = button.CommandArgument.ToString();
            newpath = path + newpath;
            bindTree(newpath);
            rgDirectory.Rebind();
        }
    }
}

Telerik Tree view with folders

Step 1: in design


step 2
public partial class DirectoryTree : System.Web.UI.UserControl
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!string.IsNullOrEmpty(Convert.ToString(System.Configuration.ConfigurationManager.AppSettings["Path"])))
            {
                this.RadTreeView1.Nodes.Clear();
                DirectoryInfo dir = new DirectoryInfo(Convert.ToString(System.Configuration.ConfigurationManager.AppSettings["Path"]));
                RadTreeNode node = new RadTreeNode(dir.Name);
                LoadDirectoriesAndFiles(dir, node);
                this.RadTreeView1.Nodes.Add(node);
                SortNodes(RadTreeView1.Nodes);
            }
        }

        // Load Directory and file from path


        private void LoadDirectoriesAndFiles(DirectoryInfo dir, RadTreeNode parentNode)
        {
            foreach (FileInfo fileInfo in dir.GetFiles())
            {
                RadTreeNode fileNode = new RadTreeNode(fileInfo.Name);
                parentNode.Nodes.Add(fileNode);
            }

            foreach (DirectoryInfo directoryInfo in dir.GetDirectories())
            {
                RadTreeNode dirNode = new RadTreeNode(directoryInfo.Name);
                parentNode.Nodes.Add(dirNode);
                LoadDirectoriesAndFiles(directoryInfo, dirNode);
            }
        }


        //SortNodes is a recursive method enumerating and sorting all node levels


        private void SortNodes(RadTreeNodeCollection collection)
        {
            Sort(collection);
            foreach (RadTreeNode node in collection)
            {
                if (node.Nodes.Count > 0)
                {
                    SortNodes(node.Nodes);
                }
            }
        }


        /// The Sort method is called for each node level sorting the child nodes


        public void Sort(RadTreeNodeCollection collection)
        {
            RadTreeNode[] nodes = new RadTreeNode[collection.Count];
            collection.CopyTo(nodes, 0);
            Array.Sort(nodes, new TreeNodeComparer());
            collection.Clear();
            collection.AddRange(nodes);
        }


        // The TreeNodeComparer class defines the sorting criteria
        class TreeNodeComparer : IComparer
        {
            public int Compare(object x, object y)
            {
                RadTreeNode firstNode = (RadTreeNode)x;
                RadTreeNode secondNode = (RadTreeNode)y;

                return firstNode.Text.CompareTo(secondNode.Text);
            }
        }
    }

Thursday, 3 April 2014

radgrid with another radgrid

step 1. in design
 telerik:RadGrid ID="rgCustomer" runat="server" OnNeedDataSource="rgCustomer_NeedDataSource"
                 OnItemDataBound="rgCustomer_ItemDataBound1"
               MasterTableView DataKeyNames="CustomerID"
                  NestedViewTemplate                       
                        telerik:RadGrid ID="rgCustomerDetails" runat="server" Visible="true" AllowPaging="true"
                            PageSize="10"
                           MasterTableView AutoGenerateColumns="true"
                            MasterTableView
                       telerik:RadGrid
                   NestedViewTemplate
                MasterTableView
            telerik:RadGrid

 step 2 in code behind

  private DataSet BindGrid(int typeId)
    {
        Hashtable objHashTable = new Hashtable();
        objHashTable.Add("@TypeID", typeId);
        SqlHelper objSqlHelper = new SqlHelper();
        DataSet dsCustomer = new DataSet();
        try
        {
            dsCustomer = objSqlHelper.ExecuteProc("SPTelerickImplementation", objHashTable);
            rgCustomer.DataSource = dsCustomer;
            rgCustomer.DataBind();


        }
        catch (Exception ex)
        {
        }
        finally
        {
            objSqlHelper.CloseConnection();
        }
        return dsCustomer;
    }

    protected void rgCustomer_ColumnCreated(object sender, GridColumnCreatedEventArgs e)
    {
        if (e.Column.UniqueName == "ExpandColumn")  //Hiding the expand collapse column
        {
            e.Column.Visible = false;
        }

    }
    private DataSet BindInnerGrid(int typeId, string customerId)
    {
        Hashtable objHashTable = new Hashtable();
        objHashTable.Add("@TypeID", typeId);
        objHashTable.Add("@CustomerId", customerId);
        SqlHelper objSqlHelper = new SqlHelper();
        DataSet dsCustomer = new DataSet();
        try
        {
            dsCustomer = objSqlHelper.ExecuteProc("SPTelerickImplementation", objHashTable);
        }
        catch (Exception ex)
        {
        }
        finally
        {
            objSqlHelper.CloseConnection();
        }
        return dsCustomer;
    }
    protected void rgCustomer_NeedDataSource(object sender, GridNeedDataSourceEventArgs e)
    {
        //rgCustomer.Rebind();
    }

    protected void rgCustomer_ItemDataBound1(object sender, GridItemEventArgs e)
    {

        if (e.Item is GridNestedViewItem)// to access a row 
        {
          
            GridNestedViewItem item = e.Item as GridNestedViewItem;
            RadGrid grid = (RadGrid)sender;
            GridDataItem data = (GridDataItem)item.ParentItem;
            string customerId = data.GetDataKeyValue("CustomerID").ToString();

            RadGrid grid2 = item.FindControl("rgCustomerDetails") as RadGrid;

            DataSet dsOrderds = BindInnerGrid(4, customerId);
            grid2.DataSource = dsOrderds;
            grid2.DataBind();


        }
    }

Wednesday, 5 March 2014

How to insert image details in db using entity framework







Upload Image

:
































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();
    }
}