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
Saturday, December 17, 2011
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.
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>
<%# 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>
<%# 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: <%= 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" />
Page <span id="CurrentPage" runat="server"> </span> of <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" />
<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>
<%# 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>
<%# 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: <%= 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" />
Page <span id="CurrentPage" runat="server"> </span> of <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();
}
{
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();
}
Subscribe to:
Comments (Atom)
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...
-
SP2013 vs SP2010 As we know Microsoft has released the next version of SharePoint 2010 which is called as SharePoint 2013(p...
-
if (( Get-PSSnapin "Microsoft.SharePoint.PowerShell" -ErrorAction SilentlyContinue ) -eq $null ) { Add-PSSnap...
-
Introduction In this article, I will explain how to call ASP.NET web API in your Angular project step by step. You need to enable CORS i...