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