Sunday, 22 July 2012

Delete dynamic pages


            SPSecurity.RunWithElevatedPrivileges(delegate()
            {
                using (SPSite site = SPContext.Current.Site)
                {
                    using (SPWeb web = site.OpenWeb())
                    {
                        using (VCSBINTRANETDataContext datacontxt = new VCSBINTRANETDataContext(SiteHelper.SiteUrl))
                        {
                            var itemDelete = (from deletequery in datacontxt.PropellerStudio
                                              where deletequery.Id == Convert.ToInt32(propellerStudioBL.ID)
                                              select deletequery).First();
                            PublishingWeb pubWeb = null;
                            if (PublishingWeb.IsPublishingWeb(web))
                            {
                                pubWeb = PublishingWeb.GetPublishingWeb(web);

                                foreach (SPListItem currentItem in pubWeb.PagesList.Items)
                                {
                                    if (PublishingPage.IsPublishingPage(currentItem))
                                    {
                                        PublishingPage page = PublishingPage.GetPublishingPage(currentItem);

                                        if (itemDelete.Title + ".aspx" == page.Name)
                                        {
                                            if (page.Name != pubWeb.DefaultPage.Name)
                                            {
                                                currentItem.File.Delete();
                                                datacontxt.PropellerStudio.DeleteOnSubmit(itemDelete);
                                                datacontxt.SubmitChanges();
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            });

Saturday, 21 July 2012

Create dynamic page1

  public void Createdynamicpage(string title)
        {
            SPWeb spweb = SPContext.Current.Web;

            PublishingWeb publishingWeb = PublishingWeb.GetPublishingWeb(spweb);


            string pageName = title + ".aspx";

            PageLayout[] pageLayouts = publishingWeb.GetAvailablePageLayouts();

            PageLayout currPageLayout = pageLayouts[9];

            PublishingPageCollection pages = publishingWeb.GetPublishingPages();

            PublishingPage newPage = pages.Add(pageName, currPageLayout);
           
           
            //newPage.ListItem[FieldId.PublishingPageContent] = "This is my content";

            newPage.ListItem.Update();

            newPage.Update();

           // newPage.CheckIn("This is just a comment");

        }

Create Webpart

Create dynamic webpart when create a page


 public void Createwebpart(string title)
        {
            Createdynamicpage(title);
            SPFile page = SPContext.Current.Web.GetFile("/Pages/" + title + ".aspx");
            using (SPLimitedWebPartManager wpmgr = page.GetLimitedWebPartManager(PersonalizationScope.Shared))
            {
                XmlElement p = new XmlDocument().CreateElement("p");
                p.InnerText = "Edit this webpart to add content on this Page";
                // page.DeleteProperty(pageLayouts[0]);

                ContentEditorWebPart cewp = new ContentEditorWebPart
                {
                    Content = p
                };
                wpmgr.AddWebPart(cewp, "Header", 0);
            }
            page.Update();
        }

Create Dynamic Pages

  protected void Createdynamicpage(string pagename)
        {
            SPSite site = SPContext.Current.Site;
            using (SPWeb web = site.OpenWeb())
            {

                SPList list = web.Lists["Pages"];
                string postInformation =

                  "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" +

                  "<Method>" +

                    "<SetList Scope=\"Request\">" + list.ID + "</SetList>" +

                    "<SetVar Name=\"ID\">New</SetVar>" +

                    "<SetVar Name=\"Cmd\">NewWebPage</SetVar>" +

                    "<SetVar Name=\"Type\">WebPartPage</SetVar>" +

                    "<SetVar Name=\"WebPartPageTemplate\">1</SetVar>" +

                    "<SetVar Name=\"Title\">" + pagename + "</SetVar>" +

                    "<SetVar Name=\"Overwrite\">true</SetVar>" +

                  "</Method>";
                string processBatch = web.ProcessBatchData(postInformation);
                web.Update();
            }
        }

Friday, 6 July 2012

DAL(Alter)

STEP 1: Create a class file like AppsDL.cs



using System;
using System.Web.UI.WebControls;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Microsoft.SharePoint;
using System.Data;
using VCSB.INTRANET.BLL;

namespace VCSB.INTRANET.DAL
{
    public class AppsDL
    {
        #region GetAppsListItem
        public static  void GetAppsListItem(DataList Apps)
        {


            SPSite spsite = SPContext.Current.Site;
            SPWeb spweb = spsite.OpenWeb();
            SPList spList = spweb.Lists["AppsCategory"];
            SPList spList1 = spweb.Lists["Apps"];
            SPListItemCollection spListItems = spList.Items;
            SPListItemCollection spListItems1 = spList1.Items;

            //var query1 = from SPListItem pi in spList.Items
            //             from SPListItem ci in spList1.Items
            //             where pi.Title.ToString().Equals(new SPFieldLookupValue(ci["Category"].ToString()).LookupValue)
            //             select new { Parent = pi, Child = ci };


            using (VCSBINTRANETDataContext context = new VCSBINTRANETDataContext(SiteHelper.SiteUrl))
            {


                IQueryable<string> query1 = from Appsitem in context.Apps
                                            orderby Appsitem.Category.Id ascending
                                          select Appsitem.Category.Title;
                IQueryable<string> distinctNames = query1.Distinct();      
           
            DataTable dd1 = new DataTable();
            dd1.Columns.Add("Title");
            DataRow row;
            foreach (var grp in  distinctNames)
            {
                row = dd1.Rows.Add();
                row["Title"] = Convert.ToString(grp);
            }
            Apps.DataSource = dd1;
            Apps.DataBind();
        }

            var query = from SPListItem pi in spList.Items
                        from SPListItem ci in spList1.Items
                        where pi.Title.ToString().Equals(new SPFieldLookupValue(ci["Category"].ToString()).LookupValue)
                        select new { Parent = pi, Child = ci };

            DataTable ds1 = new DataTable();
            ds1.Columns.Add("Title");
            ds1.Columns.Add("Category");
            ds1.Columns.Add("AppsUrl");
            DataRow row1;
            foreach (var grp1 in query)
            {
                row1 = ds1.Rows.Add();
                    row1["Title"] = Convert.ToString(grp1.Parent.Title);
                    row1["Category"] = Convert.ToString(grp1.Child.Title);
                    row1["AppsUrl"] = Convert.ToString(grp1.Child["AppsURL"]);
             
            }
            DataSet test = new DataSet();
            test.Tables.Add(ds1);

            foreach (DataListItem item in Apps.Items)
            {
                string dataTitle = Convert.ToString(Apps.DataKeys[item.ItemIndex]);
                DataList gvr = (DataList)Apps.Items[item.ItemIndex].FindControl("Appscat");
                DataTable dt = new DataTable();
                dt.Columns.Add("Category");
                dt.Columns.Add("AppsUrl");
               

                foreach (DataRow item1 in test.Tables[0].Rows)
                {
                    DataRow drr = dt.NewRow();
                  

                        if (Convert.ToString(item1["Title"]) == dataTitle)
                        {
                            drr["Category"] = item1["Category"].ToString();
                            drr["AppsUrl"] = Convert.ToString(item1["AppsUrl"]);
                            dt.Rows.Add(drr);
                        }
                   
                }
                gvr.DataSource = dt;
                gvr.DataBind();
            }

        }
        #endregion
    }
}

Wednesday, 4 July 2012

DL(DAL)

STEP 1: Create a class file like AppsDL.cs


namespace VCSB.INTRANET.DAL
{
    public class AppsDL
    {
        public static  void GetAppsListItem(DataList Apps)
        {
            SPSite spsite = SPContext.Current.Site;
            SPWeb spweb = spsite.OpenWeb();
            SPList spList = spweb.Lists["AppsCategory"];
            SPList spList1 = spweb.Lists["Apps"];
            SPListItemCollection spListItems = spList.Items;
            SPListItemCollection spListItems1 = spList1.Items;

            var query1 = from SPListItem pi in spList.Items
                         select pi;
            DataTable dd1 = new DataTable();
            dd1.Columns.Add("Title");
            DataRow row;
            foreach (var grp in query1)
            {
                row = dd1.Rows.Add();
                row["Title"] = Convert.ToString(grp.Title);
            }
            Apps.DataSource = dd1;
            Apps.DataBind();

            var query = from SPListItem pi in spList.Items
                        from SPListItem ci in spList1.Items
                        where pi.Title.ToString().Equals(new SPFieldLookupValue(ci["Category"].ToString()).LookupValue)
                        select new { Parent = pi, Child = ci };

            DataTable ds1 = new DataTable();
            ds1.Columns.Add("Title");
            ds1.Columns.Add("Category");
            ds1.Columns.Add("AppsUrl");
            DataRow row1;
            foreach (var grp1 in query)
            {
                row1 = ds1.Rows.Add();
                row1["Title"] = Convert.ToString(grp1.Parent.Title);
                row1["Category"] = Convert.ToString(grp1.Child.Title);
                row1["AppsUrl"] = Convert.ToString(grp1.Child["AppsURL"]);

            }


            DataSet test = new DataSet();
            test.Tables.Add(ds1);

            foreach (DataListItem item in Apps.Items)
            {
                string dataTitle = Convert.ToString(Apps.DataKeys[item.ItemIndex]);
                DataList gvr = (DataList)Apps.Items[item.ItemIndex].FindControl("Appscat");
                DataTable dt = new DataTable();
                dt.Columns.Add("Category");
                dt.Columns.Add("AppsUrl");
                foreach (DataRow item1 in test.Tables[0].Rows)
                {
                    DataRow drr = dt.NewRow();
                    if (Convert.ToString(item1["Title"]) == dataTitle)
                    {
                        drr["Category"] = item1["Category"].ToString();
                        drr["AppsUrl"] = Convert.ToString(item1["AppsUrl"]);
                        dt.Rows.Add(drr);
                    }
                }
                gvr.DataSource = dt;
                gvr.DataBind();
            }
           
        }

    }
}


ASCX(ascx.cs)

STEP 1: Create a VisualWebPart like AppsDetailsPage

STEP 2: Write a coding in AppsDetailsPageUserControl.ascx.cs 


STEP 3:

using System;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Data;
using Microsoft.SharePoint;
using Microsoft.SharePoint.Utilities;
using System.Linq;
using VCSB.INTRANET.BLL;
using VCSB.INTRANET.DAL;


namespace VCSB01.INTRANET.WebPartDetailsPage.AppsDetailsPage
{
    public partial class AppsDetailsPageUserControl : UserControl
    {

        protected void Page_Load(object sender, EventArgs e)
        {
            try
            {
                if (!IsPostBack)
                {
                    BindGrid();
                }
            }
            catch (Exception ex)
            {
                ErrorHelper.Add(Convert.ToString(ex.Message), Convert.ToString(ex.StackTrace));
                SPUtility.TransferToErrorPage(MessageHelper.Message(MessageMode.CommonErrorMessage));
            }
        }
       

        public void BindGrid()
        {
            AppsDL.GetAppsListItem(Apps);
           
        }
        protected void Apps_ItemDataBound(object sender, DataListItemEventArgs e)
        {
           
        }
       
    }
}
 

ASCX(.ascx)

STEP 1: Create a VisualWebPart like AppsDetailsPage

STEP 2: Write a coding in AppsDetailsPageUserControl.ascx


STEP 3:

<asp:DataList runat="server" ID="Apps" RepeatColumns="3" RepeatDirection="Horizontal"
    OnItemDataBound="Apps_ItemDataBound" DataKeyField="Title" CellPadding="10" CellSpacing="10">
    <ItemStyle VerticalAlign="Top" />
    <ItemTemplate>
        <table cellpadding="0" cellspacing="0" width="298px" border="0">
            <tr>
                <td class="apps_title">
                    <%# Eval("Title")%>
                </td>
            </tr>
            <tr>
                <td class="apps_center">
                    <asp:DataList ID="Appscat" runat="server">
                        <ItemTemplate>
                            <asp:LinkButton ID="lnkbtnUrl" CausesValidation="false" PostBackUrl='<%# Eval("AppsUrl")%>'
                                runat="server">
                                                   <%# Eval("Category")%>
                            </asp:LinkButton>
                        </ItemTemplate>
                    </asp:DataList>
                </td>
            </tr>
            <tr>
                <td class="apps_bottom">
                </td>
            </tr>
        </table>
    </ItemTemplate>
</asp:DataList>
 

SharePoint online - Get List-item attachments and Display to div

Step 1 : Create a List ex: TestList and attach few images Step 2 : Copy and Pastet the below coding in App.js var  Items =  null ; ...