Saturday, December 17, 2011

Set LookUp field for Custom Lists

Step1:After Creating all Lists, add another feature in same project,
Step2:add an EventReceiver in that
Step3:Paste FollowingCodes in that:


  public override void FeatureActivated(SPFeatureReceiverProperties properties)
        {
           // SPSite spSite = (SPSite)properties.Feature.Parent;
            SPWeb spWeb = (SPWeb)properties.Feature.Parent;
            SPListTemplateCollection listTemplates = spWeb.Site.GetCustomListTemplates(spWeb);
            foreach (SPListTemplate template in listTemplates)
            {
                EnsureList(spWeb, template.Name, template, false);
            }
            SetLookupColumns(spWeb);
          
        }
        private void SetLookupColumns(SPWeb SPwebsite)
        {
            using (SPwebsite)
            {
                //Lookup List 1
                Hashtable hshtable = new Hashtable();
                //ParentList,ID                   //ChildList,ID    
                hshtable.Add("PatientProfile1,PID", "PatientProfile,ID");
                hshtable.Add("FrequencyBk,FrequencyID", "FrequencyList,ID");
                hshtable.Add("FrequencyBk,PatientID", "PatientProfile,ID");
                hshtable.Add("FrequencyBk,TherapistID", "CareGiverProfile,ID");
                hshtable.Add("FrequencyList,PatientID", "PatientProfile,ID");
                hshtable.Add("FrequencyList,TherapistID", "CareGiverProfile,ID");
                hshtable.Add("VisitScheduleList,PatientID", "PatientProfile,ID");
                hshtable.Add("VisitScheduleList,TherapistID", "CareGiverProfile,ID");
                hshtable.Add("VisitScheduleList,FrequencyID", "FrequencyList,ID");
                hshtable.Add("CareGiverFileList,CareGiverID", "CareGiverProfile,ID");
                hshtable.Add("AssignTherapistMail,PatientID", "PatientProfile,ID");
                hshtable.Add("OTEvaluationCon,OTID", "OTEvalustion,ID");
                hshtable.Add("OTEvaluationCon1,OTID", "OTEvalustion,ID");
                hshtable.Add("SpeechTherapy2,SPID", "SpeechTherapy1,ID");
                hshtable.Add("PTRangeofMotion,PTEvaluation1_ID", "PTEvaluation1,ID");
                hshtable.Add("PTEvaluation2,PTEvaluation1_ID", "PTEvaluation1,ID");
                hshtable.Add("PTRangeofMotion,PTReAssessment_ID", "PTReassessment,ID");
                hshtable.Add("VisitScheduleList,PatientEvent", "PatientEventList1,Title");
                if (hshtable.Count > 0)
                {
                    foreach (DictionaryEntry item in hshtable)
                    {
                        //Parent List
                        SPList lookupList = SPwebsite.Lists.TryGetList(item.Value.ToString().Split(',').GetValue(0).ToString());
                        //Child List
                        SPList relatedList = SPwebsite.Lists.TryGetList(item.Key.ToString().Split(',').GetValue(0).ToString());
                        if (lookupList != null && relatedList != null)
                        {
                            relatedList.Fields.Delete(item.Key.ToString().Split(',').GetValue(1).ToString());
                            string strPrimaryCol = relatedList.Fields.AddLookup(item.Key.ToString().Split(',').GetValue(1).ToString(), lookupList.ID, true);
                            SPFieldLookup primaryCol = (SPFieldLookup)relatedList.Fields.GetFieldByInternalName(strPrimaryCol);
                            primaryCol.LookupField = lookupList.Fields[item.Value.ToString().Split(',').GetValue(1).ToString()].InternalName;
                            primaryCol.Indexed = true;
                            primaryCol.RelationshipDeleteBehavior = SPRelationshipDeleteBehavior.Cascade;
                            primaryCol.Update();
                        }
                    }
                }
            }
        }
        public static SPList EnsureList(SPWeb site, string listName, SPListTemplate template, bool onQuickLaunch)
        {
            SPList list = null;
            Guid listID = Guid.Empty;
            if (site != null)
            {
                foreach (SPList item in site.Lists)
                {
                    if (item.Title.ToLower() == listName.ToLower())
                    {
                        list = item;
                        listID = item.ID;
                        break;
                    }
                }
                if (list == null)
                {
                    listID = site.Lists.Add(listName, "", template);
                    list = site.Lists[listID];
                    list.OnQuickLaunch = onQuickLaunch;
                    list.Update();
                }
            }
            else
            {
                throw new Exception("In EnsureSiteDataList SPWeb is null");
            }
            return list;
        }
Step4:deploy the solution

ListWSP

Step1: Create An Empty Sharepoint Project
Step2: Create an FolderNamed As Layouts,create a folder inside that Layouts and Paste all .stp files of Lists
Step3: Add an EventReceiver Class in Feature

Paste the following code:
public override void FeatureActivated(SPFeatureReceiverProperties properties)
        {           
            SPWeb spWeb =(SPWeb)properties.Feature.Parent;
            string path = @"C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\14\TEMPLATE\LAYOUTS\DRAMISCUSTOMLIST\";
            Hashtable CustomList = new Hashtable();
            DirectoryInfo di = new DirectoryInfo(path);
            if (di.Exists)
            {
                FileInfo[] rgFiles = di.GetFiles("*.stp");
                foreach (FileInfo fi in rgFiles)
                {
                    CustomList.Add(fi.Name, path);
                }
                if (CustomList.Count > 0)
                {
                    foreach (DictionaryEntry item in CustomList)
                    {
                        UploadTemplate(spWeb.Site, spWeb, item.Value.ToString() + item.Key.ToString(), item.Key.ToString(), "description");
                    }
                }
            }
        }

        public static void UploadTemplate(SPSite spSite, SPWeb spWeb, string CustomListStpLocalPath, string CustomLisName, string description)
        {
            try
            {
                SPSecurity.RunWithElevatedPrivileges(delegate()
                {
                    using (spSite = new SPSite(SPContext.Current.Site.Url))
                    {
                        spSite.AllowUnsafeUpdates = true;
                        using (spWeb = spSite.OpenWeb())
                        {
                            spWeb.AllowUnsafeUpdates = true;
                            //get the template gallery
                            SPDocumentLibrary list = (SPDocumentLibrary)spWeb.Lists["List Template Gallery"];
                            //get the folder under which the site tempaltes reside
                            SPFolder myFolder = list.RootFolder;
                            //get the byte data of the site tempalte from the disk
                            byte[] data = File.ReadAllBytes(CustomListStpLocalPath);
                            //add the file to the folder                       
                            SPFile file = myFolder.Files.Add(CustomLisName, data, true);
                            //update the changes
                            file.Update();
                            spWeb.Dispose();
                        }
                    }
                    spSite.AllowUnsafeUpdates = false; spWeb.AllowUnsafeUpdates = false;
                });
            }
            catch (Exception exp)
            {
                Console.WriteLine(exp.GetType().Name);
            }
        }
Step4: Deploy the project to the site.

Friday, December 16, 2011

Sp Grid Filter(Custom)

<table>
<tr>
<td>
<SharePoint:SPGridView ID="grid" runat="server" HeaderStyle-ForeColor="#21374C" CellSpacing="1"
    CellPadding="12" OnSelectedIndexChanging="grid_SelectedIndexChanging" RowStyle-Height="15"
    AllowFiltering="true" AlternatingRowStyle-CssClass="listone" RowStyle-CssClass="listtwo" AllowPaging="true"
     FilterDataFields="PatientEvent,SelectedDate,StartTime,EndTime,Discipline,TherapistName,VisitActivity,VisitCount,OTDay"
    FilteredDataSourcePropertyFormat="{1} = '{0}'" FilteredDataSourcePropertyName="FilterExpression"
     GroupField="Name" GroupDescriptionField="Name" GroupFieldDisplayName="Name" PageSize="2"
    HeaderStyle-Height="20px" AllowSorting="true" AutoGenerateColumns="false">
    <RowStyle CssClass="listtwo" Height="15px" />
    <AlternatingRowStyle BackColor="White" />
    <Columns>
        <asp:TemplateField>
            <HeaderTemplate>
               
                <cc1:hovermenuextender id="HovMenu1" runat="server" targetcontrolid="div1" popupcontrolid="LstName"
                    popupposition="Bottom">
                </cc1:hovermenuextender>
               
                <div id="div1" runat="server">
                   Name
                </div>
            </HeaderTemplate>
            <ItemTemplate>
                <%# Eval("Name")%>
            </ItemTemplate>
        </asp:TemplateField>
        <asp:TemplateField>
            <ItemStyle Width="150px" />
            <HeaderTemplate>
               
                <cc1:hovermenuextender id="HovMenu12" runat="server" targetcontrolid="div3" popupcontrolid="GridView2"
                    popupposition="Bottom">
                </cc1:hovermenuextender>
               
                <div id="div3" runat="server">
                   Title
                </div>
            </HeaderTemplate>
            <ItemTemplate>
                &nbsp;<%# Eval("Title")%>
            </ItemTemplate>
        </asp:TemplateField>
        <asp:TemplateField>
            <HeaderTemplate>
                <cc1:hovermenuextender id="HovMenu2" runat="server" targetcontrolid="div4" popupcontrolid="GridView1"
                    popupposition="Bottom">
                </cc1:hovermenuextender>
            
               
                <div id="div4" runat="server">
                   Address
                </div>
            </HeaderTemplate>
            <ItemStyle Width="150px" />
            <ItemTemplate>
                &nbsp;
                <%# Eval("Address")%>
            </ItemTemplate>
        </asp:TemplateField>
    </Columns>
    <EditRowStyle BackColor="#7C6F57" />
    <FooterStyle BackColor="#1C5E55" Font-Bold="True" ForeColor="White" />
    <HeaderStyle BackColor="#82A1C1" Font-Bold="True" ForeColor="White" />
    <PagerStyle BackColor="#666666" ForeColor="White" HorizontalAlign="Center" />
    <RowStyle BackColor="#E3EAEB" />
    <SelectedRowStyle BackColor="#C5BBAF" ForeColor="#333333" Font-Bold="True" />
</SharePoint:SPGridView>
</td>
</tr>
<tr>
        <td style="background-color: #ebebeb">
            <asp:HiddenField ID="hdnPageNum" runat="server" />
            <asp:HiddenField ID="hdnPageSize" runat="server" />
            <asp:HiddenField ID="hdnTotalRecords" runat="server" />
            <asp:Panel ID="pnlpaging"  runat="server">
                <table width="99%" border="0" cellspacing="0" cellpadding="0" align="center">
                    <tr>
                        <td valign="middle" nowrap="nowrap" class="bodytext" width="38%">
                             Total Records:&nbsp;<%= TotalRecords %></td>
                        <td align="center" class="grid_bodytext">
                            <asp:ImageButton ID="imgPrev" runat="server" CausesValidation="False" ImageAlign="AbsMiddle"
                                ImageUrl="../_layouts/images/PREV.GIF" OnClick="imgPrev_Click" />
                            &nbsp;Page&nbsp;<span id="CurrentPage" runat="server"> </span>&nbsp;of&nbsp;<span
                                id="TotalPages" runat="server"> </span>
                            <asp:ImageButton ID="imgNext" runat="server" CausesValidation="False" ImageAlign="AbsMiddle"
                                ImageUrl="../_layouts/images/NEXT.GIF" OnClick="imgNext_Click" />
                        </td>
                        <td nowrap="nowrap" align="right" class="grid_bodytext">
                            Page No.<asp:DropDownList ID="ddlGo" runat="server">
                            </asp:DropDownList>
                            
                                                                </cc1:FilteredTextBoxExtender>
                            <asp:ImageButton ID="imgGo" runat="server" OnClick="imgGo_click" CausesValidation="false"
                                ImageAlign="AbsMiddle" ImageUrl="../_layouts/images/kpitrend-2.gif" AlternateText="go" />
                        </td>
                    </tr>
                    <tr>
                    <td colspan="3" align="right">  <asp:Label ID="lblpgexceed" runat="server" ForeColor="Red"></asp:Label></td>
                    </tr>
                </table>
            </asp:Panel>
        </td>
   </tr>

   </table>
   <table>
   <tr>
   <td>
  
<asp:GridView ID="LstName" OnRowCommand="LstName_RowCommand" style="display:none;" AutoGenerateColumns="false"
                    runat="server">
                    <Columns>
                        <asp:TemplateField>
                            <HeaderTemplate>
                                <asp:LinkButton ID="LnkName" CommandName="ClearFilter" runat="server">Clear</asp:LinkButton>
                               <asp:LinkButton ID="LinkButton1" CommandName="sortAsc" CommandArgument="Name" runat="server"> Sort Asc</asp:LinkButton>
                                <asp:LinkButton ID="LinkButton2" CommandName="sortDesc" CommandArgument="Name" runat="server"> Sort Desc</asp:LinkButton>
                            </HeaderTemplate>
                            <ItemTemplate>
                                <asp:LinkButton ID="LnkName" CommandName="Name" CommandArgument='<%# Eval("Name").ToString()+",Name" %>'
                                    runat="server"><%# Eval("Name")%></asp:LinkButton>
                            </ItemTemplate>
                        </asp:TemplateField>
                    </Columns>
                </asp:GridView>
<asp:GridView ID="GridView1" OnRowCommand="LstName_RowCommand" style="display:none;" AutoGenerateColumns="false"
                    runat="server">
                    <Columns>
                        <asp:TemplateField>
                            <HeaderTemplate>
                                <asp:LinkButton ID="LnkName" CommandName="ClearFilter" runat="server">Clear</asp:LinkButton>
                                 <asp:LinkButton ID="LinkButton1" CommandName="sortAsc" CommandArgument="Address" runat="server"> Sort Asc</asp:LinkButton>
                                <asp:LinkButton ID="LinkButton2" CommandName="sortDesc" CommandArgument="Address" runat="server"> Sort Desc</asp:LinkButton>
                            </HeaderTemplate>
                            <ItemTemplate>
                                <asp:LinkButton ID="LnkName" CommandName="Address" CommandArgument='<%# Eval("Address").ToString()+",Address" %>'
                                    runat="server"><%# Eval("Address")%></asp:LinkButton>
                            </ItemTemplate>
                        </asp:TemplateField>
                    </Columns>
                </asp:GridView>
<asp:GridView ID="GridView2" OnRowCommand="LstName_RowCommand" style="display:none;" AutoGenerateColumns="false"
                    runat="server">
                    <Columns>
                        <asp:TemplateField>
                            <HeaderTemplate>
                                <asp:LinkButton ID="LnkName1" CommandName="ClearFilter" runat="server">Clear</asp:LinkButton>
                                 <asp:LinkButton ID="LinkButton1" CommandName="sortAsc" CommandArgument="Title" runat="server"> Sort Asc</asp:LinkButton>
                                <asp:LinkButton ID="LinkButton2" CommandName="sortDesc" CommandArgument="Title" runat="server"> Sort Desc</asp:LinkButton>
                            </HeaderTemplate>
                            <ItemTemplate>
                                <asp:LinkButton ID="LnkName11" CommandName="Title" CommandArgument='<%# Eval("Title").ToString()+",Title" %>'
                                    runat="server"><%# Eval("Title")%></asp:LinkButton>
                            </ItemTemplate>
                        </asp:TemplateField>
                    </Columns>
                </asp:GridView>
   </td>
   </tr>
   </table>
<asp:HiddenField ID="hdnfilter" runat="server" />

SPGrid Filter(Custom)

 protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                Session["AllData"] = SelectData();
                grid.DataSource = Session["AllData"];
                grid.DataBind();
                TotalRecords = ((DataTable)Session["AllData"]).Rows.Count;
                TotalPages.InnerText = Convert.ToString((TotalRecords / grid.PageSize) + 1);
                CurrentPage.InnerText = Convert.ToString(grid.PageIndex + 1);
                bindddlgo(ddlGo, Convert.ToInt16(TotalPages.InnerText));
                Session.Add("FilteredData", SelectData());
                //GridView LstName = (GridView)grid.HeaderRow.FindControl("LstName");
               // GridView GridView1 = (GridView)grid.HeaderRow.FindControl("GridView1");
                //lst.SelectedIndexChanged += new EventHandler(lst_SelectedIndexChanged);
                LstName.DataSource = ((DataTable)Session["FilteredData"]).DefaultView.ToTable(true, "Name");
                LstName.DataBind();
                GridView1.DataSource = ((DataTable)Session["FilteredData"]).DefaultView.ToTable(true, "Address");
                GridView1.DataBind();
                GridView2.DataSource = ((DataTable)Session["FilteredData"]).DefaultView.ToTable(true, "Title");
                GridView2.DataBind();
                DisibleNextPreButton();
            }
         
           
        }   
        public DataTable SelectData()
        {
            DataTable dt = new DataTable();
            try
            {

                dt.Columns.Add("Title");
                dt.Columns.Add("Name");
                dt.Columns.Add("Address");
                DataRow row;
                SPSite spSite; SPWeb spWeb; SPList spList;
                SPSecurity.RunWithElevatedPrivileges(delegate()
                {
                    using (spSite = new SPSite(SPContext.Current.Site.Url))
                    {
                        spSite.AllowUnsafeUpdates = true;
                        using (spWeb = spSite.OpenWeb())
                        {
                            spList = spWeb.Lists["Testlist"];
                            spWeb.AllowUnsafeUpdates = true;
                           
                            var query = from SPListItem item in spList.Items
                                        orderby item.ID descending
                                        select item;
                            if (query != null)
                            {
                                foreach (var item in query)
                                {
                                    row = dt.Rows.Add();
                                    row["Name"] = item["Name"].ToString();
                                    row["Title"] = item["Title"].ToString();
                                    row["Address"] = item["Address"].ToString();
                                    //row["ListName"] = list.Title;
                                    //row["ListName"] = "<a href=\"" + list.DefaultViewUrl + "\">" + list.Title + "</a>"; 
                                }
                                //    }
                                //}
                            }
                        }
                    }
                });
                return dt;
            }
            catch (Exception s)
            {
                return dt;
            }
        }
        public DataTable SelectDatafilter(string selectedName, string columnname)
        {
         
         
            DataTable dtold = (DataTable)Session["FilteredData"];
           
            try
            {
                DataView dv = dtold.DefaultView;
              dv.RowFilter = columnname + " LIKE " + "'" + selectedName + "'";
              Session["FilteredData"] = dv.ToTable();            
              return dv.ToTable();
              
            }
            catch (Exception s)
            {
                SPUtility.TransferToSuccessPage(s.ToString());
                return dtold;
            }
        }
        public DataTable SelectDatafilterRef(string selectedName, string columnname)
        {

            DataTable dtold = (DataTable)Session["FilterRef"];
            try
            {
                DataView dv = dtold.DefaultView;
                dv.RowFilter = columnname + " LIKE " + "'" + selectedName + "'";
                Session["FilteredData"] = dv.ToTable();
                return dv.ToTable();
            }
            catch (Exception s)
            {
                SPUtility.TransferToSuccessPage(s.ToString());
                return dtold;
            }
        }
        #region eventhandlers
        private void grid_RowDataBound(object sender, GridViewRowEventArgs e)
        {
            //if (sender == null || e.Row.RowType != DataControlRowType.Header)
            //{             
            //    return;     
            //}          
            //SPGridView grid = sender as SPGridView;
            //if (String.IsNullOrEmpty(grid.FilterFieldName))  
            //{           
            //    return;   
            //}        
            //// Show icon on filtered column 
            //for (int i = 0; i < grid.Columns.Count; i++)    
            //{               
            //    DataControlField field = grid.Columns[i];
            //    if (field.SortExpression == grid.FilterFieldName)  
            //    {                   
            //        Image filterIcon = new Image();
            //        filterIcon.ImageUrl = "/_layouts/images/filter.gif";  
            //        filterIcon.Style[HtmlTextWriterStyle.MarginLeft] = "2px";   
            //        // If we simply add the image to the header cell it will   
            //        // be placed in front of the title, which is not how it   
            //        // looks in standard SharePoint. We fix this by the code 
            //        // below.             
            //        Literal headerText = new Literal();  
            //        headerText.Text = field.HeaderText; 
            //        PlaceHolder panel = new PlaceHolder();  
            //        panel.Controls.Add(headerText);     
            //        panel.Controls.Add(filterIcon);       
            //        e.Row.Cells[i].Controls[0].Controls.Add(panel);  
            //        break;        
            //    }         
            //}     
        }
        //Used to filter data
        private void gridDS_Filtering(object sender, ObjectDataSourceFilteringEventArgs e)
        {
            // ViewState["FilterExpression"] = ((ObjectDataSourceView)sender).FilterExpression;
        }
        //Used to sort the data   
        private void grid_Sorting(object sender, GridViewSortEventArgs e)
        {
            //if (ViewState["FilterExpression"] != null)     
            //{           
            //gridDS.FilterExpression = (string)ViewState["FilterExpression"]; 
            //}        
        }
        protected sealed override void LoadViewState(object savedState)
        {
            //base.LoadViewState(savedState);    
            //if (Context.Request.Form["__EVENTARGUMENT"] != null &&  Context.Request.Form["__EVENTARGUMENT"].EndsWith("__ClearFilter__"))   
            //{              
            //     Clear FilterExpression  
            //    ViewState.Remove("FilterExpression");
            //}     
        }
        protected void grid_SelectedIndexChanging(object sender, GridViewSelectEventArgs e)
        {
            //ListBox lst = (ListBox)grid.HeaderRow.FindControl("LstName");
            //lst.SelectedIndexChanged += new EventHandler(lst_SelectedIndexChanged);
            //lst.DataSource = SelectData();
            //lst.DataTextField = "Name";
            //lst.DataValueField = "Address";
            //lst.DataBind();
        }
        private void gridDS_ObjectCreating(object sender, ObjectDataSourceEventArgs e)
        {
            // e.ObjectInstance = this;
        }
        #endregion
       public int TotalRecords;
        protected void LstName_RowCommand(object sender, GridViewCommandEventArgs e)
        {
            grid.PageIndex = 0;
            if (e.CommandName == "ClearFilter")
            {
                using (GridView lst = (GridView)grid.HeaderRow.FindControl("LstName"))
                {
                    Session["AllData"] = SelectData();
                    Session["FilteredData"] = Session["AllData"];
                    grid.DataSource = (DataTable)Session["FilteredData"];
                    grid.DataBind();
                  
                    TotalRecords = ((DataTable)Session["AllData"]).Rows.Count;
                    TotalPages.InnerText = Convert.ToString((TotalRecords / grid.PageSize) + 1);
                    CurrentPage.InnerText = Convert.ToString(grid.PageIndex + 1);
                    bindddlgo(ddlGo, Convert.ToInt16(TotalPages.InnerText));
                    clearFilter();
                    hdnfilter.Value = "";
                }
            }
            else if (e.CommandName == "sortAsc" || e.CommandName == "sortDesc")
            {            
                DataTable dt = ((DataTable)Session["FilteredData"]);
                DataView dv= dt.DefaultView;
                if (e.CommandName == "sortAsc")
                {
                    dv.Sort = e.CommandArgument.ToString() + " " + "Asc";
                }
                else
                {
                    dv.Sort = e.CommandArgument.ToString() + " " + "Desc";
                }
                grid.DataSource = dv.ToTable();
                grid.DataBind();
                TotalRecords = dt.Rows.Count;
                TotalPages.InnerText = Convert.ToString((TotalRecords / grid.PageSize) + 1);
                CurrentPage.InnerText = Convert.ToString(grid.PageIndex + 1);
                bindddlgo(ddlGo, Convert.ToInt16(TotalPages.InnerText));
            }
            else
            {
                string[] dd = e.CommandArgument.ToString().Split(',');
                if (hdnfilter.Value == dd[1].ToString())
                {
                    DataTable dt = SelectDatafilterRef(dd[0].ToString(), dd[1].ToString());
                    grid.DataSource = dt;
                    grid.DataBind();
                    //Session["FilteredData"] = Session["FilterRef"];
                    TotalRecords = dt.Rows.Count;
                    TotalPages.InnerText = Convert.ToString((TotalRecords / grid.PageSize) + 1);
                    CurrentPage.InnerText = Convert.ToString(grid.PageIndex + 1);
                    bindddlgo(ddlGo, Convert.ToInt16(TotalPages.InnerText));
                    assigfilter(e.CommandName);
                }
                else
                {
                    Session["FilterRef"] = Session["FilteredData"];
                    DataTable dt = SelectDatafilter(dd[0].ToString(), dd[1].ToString());
                    grid.DataSource = dt;
                    grid.DataBind();
                    Session["FilteredData"] = dt;
                    TotalRecords = dt.Rows.Count;
                    TotalPages.InnerText = Convert.ToString((TotalRecords / grid.PageSize) + 1);
                    CurrentPage.InnerText = Convert.ToString(grid.PageIndex + 1);
                    bindddlgo(ddlGo, Convert.ToInt16(TotalPages.InnerText));
                    assigfilter(e.CommandName);
                }
                hdnfilter.Value = dd[1].ToString();
            }
            DisibleNextPreButton();
         
        }
        enum CommandNames
        {
            Name,
            Address,
            Title
        }
        protected void assigfilter(string colName)
        {
            string[] names = Enum.GetNames(typeof(CommandNames));
           
            foreach (var item in names)
            {
                GridView grd = getgridview(item);
                if (item != colName)
                {
                    DataTable dt = (DataTable)Session["FilteredData"];
                    grd.DataSource = dt.DefaultView.ToTable(true, item);
                    grd.DataBind();
                }
            }
        }
        private GridView getgridview(string item)
        {
            GridView grd = new GridView();
            switch (item)
            {
                case "Name":
                    grd = LstName;
                    break;
                case "Address":
                    grd = GridView1;
                    break;
                case "Title":
                    grd = GridView2;
                    break;
                default:
                    break;
            }
            return grd;
        }
       
        protected void clearFilter()
        {
          
            string[] names = Enum.GetNames(typeof(CommandNames));
            foreach (var item in names)
            {
                GridView grd = getgridview(item);
                DataTable dt = (DataTable)Session["AllData"];
                    grd.DataSource = dt.DefaultView.ToTable(true, item);
                    grd.DataBind();
                  
              
            }
            grid.DataSource = (DataTable)Session["AllData"];
        }
        protected void bindddlgo(DropDownList ddlGo, int maxpage)
        {
            ddlGo.Items.Clear();
            for (int i = 1; i <= maxpage; i++)
            {
                ddlGo.Items.Add(i.ToString());
            }
          
        }
        protected void DisibleNextPreButton()
        {
            if (TotalPages.InnerText == CurrentPage.InnerText)
            {
                imgNext.Visible = false;
            }
            else
            {
                imgNext.Visible = true;
            }
            if (CurrentPage.InnerText == "1")
            {
                imgPrev.Visible = false;
            }
            else
            {
                imgPrev.Visible = true;
            }
        }
        protected void imgPrev_Click(object sender, ImageClickEventArgs e)
        {
            grid.PageIndex = grid.PageIndex - 1;
            grid.DataSource = (DataTable)Session["FilteredData"];
            grid.DataBind();
            TotalRecords = ((DataTable)Session["FilteredData"]).Rows.Count;
            TotalPages.InnerText = Convert.ToString((TotalRecords / grid.PageSize)+1);
            CurrentPage.InnerText = Convert.ToString(grid.PageIndex+1);
            bindddlgo(ddlGo, Convert.ToInt16(TotalPages.InnerText));
            DisibleNextPreButton();
        }
        protected void imgNext_Click(object sender, ImageClickEventArgs e)
        {
            grid.PageIndex = grid.PageIndex + 1;
            grid.DataSource = (DataTable)Session["FilteredData"];
            grid.DataBind();
            TotalRecords = ((DataTable)Session["FilteredData"]).Rows.Count;
            TotalPages.InnerText = Convert.ToString((TotalRecords / grid.PageSize) + 1);
            CurrentPage.InnerText = Convert.ToString(grid.PageIndex + 1);
           bindddlgo(ddlGo, Convert.ToInt16(TotalPages.InnerText));
           DisibleNextPreButton();
        }
       
        protected void imgGo_click(object sender, ImageClickEventArgs e)
        {
            TotalRecords = ((DataTable)Session["FilteredData"]).Rows.Count;
            TotalPages.InnerText = Convert.ToString((TotalRecords / grid.PageSize) + 1);
            if (Convert.ToInt16(ddlGo.SelectedItem.Text) <= Convert.ToInt16(TotalPages.InnerText) && Convert.ToInt16(ddlGo.SelectedItem.Text)!=0)
            {
                grid.PageIndex = Convert.ToInt16(ddlGo.SelectedItem.Text)-1;
                grid.DataSource = (DataTable)Session["FilteredData"];
                grid.DataBind();
                CurrentPage.InnerText = Convert.ToString(grid.PageIndex + 1);
                lblpgexceed.Text = string.Empty;
              
            }
            else
            {
                lblpgexceed.Text = "Page Does not Exist";
            }
            DisibleNextPreButton();
        }

Creating Provider hosted app (sharepoint online) with local hosted IIS

The Pre-requires are as follows. 1. Office 365 Subscription 2. Visual Studio 2015 (Professional/Community/Enterprise Edition) With t...