This visual webpart is using a data list to display two different
template data. The item template design would change based on one parameter.
Additionally use of page data source is also displayed
The ASCX –
Removed the Drop down code:
<table class="TableHeader">
<tr class="Content">
<td align="left" valign="middle" class="KnowledgeHeading_LV2">
Office
Template Index
</td>
<td class="DLHeader" style="width: 30%; text-align: right; padding-right: 30px; vertical-align: middle;
padding-top: 10px">
<asp:Button ID="btnPrev" runat="server" Text="<<" OnClick="btnPrev_Click" />
<asp:Label ID="lblCurrentPage" runat="server" Text="" />
<asp:Button ID="btnNext" runat="server" Text=">>" OnClick="btnNext_Click" />
</td>
</tr>
</table>
<table style="width:857px">
<tr>
<td>
<asp:DataList ID="dlOfficeTemplate" runat="server" GridLines="Both">
<ItemTemplate>
<asp:Literal ID="ltlTemplate" runat="server" Text='<%#GetItemTemplate((DataRowView)Container.DataItem) %>' />
</ItemTemplate>
</asp:DataList>
</td>
</tr>
<tr>
<td align="center" style="font-size: 12px; text-align:center; padding-top:10px;">
<asp:Label ID="lblMsg" runat="server" Visible="false"></asp:Label>
</td>
</tr>
</table>
The CS
page
Page Data
Source:
#region Page Data Source
PagedDataSource pagedDataSource
= new PagedDataSource();
int iPageSize = 7;
public int currentPage
{
get
{
object o = this.ViewState["_currentPage"];
if (o == null)
return 0;
else
return (int)o;
}
set
{
this.ViewState["_currentPage"] = value;
}
}
#endregion
#region Paging Button Click Next - Previous
protected void btnPrev_Click(object sender, EventArgs e)
{
currentPage
-= 1;
PopulateOfficeTemplates(ddlCompanyTemplates.SelectedItem.Text);
}
protected void btnNext_Click(object sender, EventArgs e)
{
currentPage
+= 1;
PopulateOfficeTemplates(ddlCompanyTemplates.SelectedItem.Text);
}
#endregion
The rest
of the code:
#region Page Load
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
PopulateDDLCompanyList();
}
#endregion
#region Populate DDL Company Template
/// <summary>
/// Populate templates
list in dropdown control
/// </summary>
protected void PopulateDDLCompanyList()
{
try
{
var parent = (ListView_MSOfficeTemplatesLogo)Parent;
if (parent.SiteURL != null &&
parent.LibraryName != null)
{
string siteURL = SPContext.Current.Site.Url +
parent.SiteURL;
string libraryName =
parent.LibraryName;
using (SPSite site = new SPSite(siteURL))
{
using (SPWeb web =
site.OpenWeb())
{
SPList spListPress =
web.Lists[libraryName];
SPQuery sQuery = new SPQuery();
sQuery.Query
= "<OrderBy><FieldRef Name='Title'
Ascending='False'></FieldRef></OrderBy>";
DataTable dtCompany =
spListPress.GetItems(sQuery).GetDataTable();
if (dtCompany != null &&
dtCompany.Rows.Count > 0)
{
ddlCompanyTemplates.DataSource
= dtCompany.DefaultView.ToTable(true,"Title");
ddlCompanyTemplates.DataTextField
= "Title";
ddlCompanyTemplates.DataValueField
= "Title";
ddlCompanyTemplates.DataBind();
PopulateOfficeTemplates(dtCompany.Rows[0]["Title"].ToString().Trim());
}
}
}
}
}
catch (Exception ex)
{
Microsoft.Office.Server.Diagnostics.PortalLog.LogString("Check OfficeTemplatesLogo WebPart - Populate DDL :" + ex.Message);
throw new SPException("Check OfficeTemplatesLogo WebPart - Populate DDL");
}
}
#endregion
#region DDL Company Templates Selected Index Change
/// <summary>
/// Selected index
changed event for company templates
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void ddlCompanyTemplates_SelectedIndexChanged(object sender, EventArgs e)
{
currentPage
= 0;
PopulateOfficeTemplates(ddlCompanyTemplates.SelectedItem.Text);
}
#endregion
#region Populate MS Office Templates
/// <summary>
/// Populate Office
Templates
/// </summary>
/// <param name="strCompanyTemplates"></param>
protected void PopulateOfficeTemplates(string strCompanyTemplates)
{
try
{
var parent = (ListView_MSOfficeTemplatesLogo)Parent;
if (parent.SiteURL != null &&
parent.LibraryName != null)
{
string siteURL = SPContext.Current.Site.Url +
parent.SiteURL;
string libraryName =
parent.TemplatelibraryName;
SPSecurity.RunWithElevatedPrivileges(delegate()
{
using (SPSite elevatedSite = new SPSite(siteURL))
{
using (SPWeb elevatedWeb =
elevatedSite.OpenWeb())
{
SPList spListDocumentLib
= elevatedWeb.Lists[libraryName];
SPQuery sQuery = new SPQuery();
if (strCompanyTemplates
== "Company Logo")
{
iPageSize
= 7;
sQuery.Query
=
"<Where>" +
"<And>"+
"<Eq><FieldRef Name='IsLogo' /><Value
Type='Boolean'>1</Value></Eq>" +
"<Eq><FieldRef Name='CompanyTemplates'
/><Value Type='Text'>"+strCompanyTemplates+"</Value></Eq>" +
"</And>" +
"</Where>" +
"<OrderBy><FieldRef Name='Modified'
Ascending='FALSE' /></OrderBy>";
}
else
{
iPageSize
= 15;
sQuery.Query
=
"<Where>" +
"<And>" +
"<Eq><FieldRef
Name='CompanyTemplates'/><Value Type='Text'>" + strCompanyTemplates + "</Value></Eq>" +
"<Eq><FieldRef Name='IsLogo' /><Value
Type='Boolean'>0</Value></Eq>" +
"</And>" +
"</Where>" +
"<OrderBy><FieldRef Name='Modified'
Ascending='FALSE' /></OrderBy>";
}
DataTable dtItems =
spListDocumentLib.GetItems(sQuery).GetDataTable();
if (dtItems != null && dtItems.Rows.Count
> 0)
{
pagedDataSource.DataSource
= dtItems.DefaultView;
pagedDataSource.AllowPaging
= true;
pagedDataSource.PageSize
= iPageSize;
pagedDataSource.CurrentPageIndex
= currentPage;
btnPrev.Enabled
= (!pagedDataSource.IsFirstPage);
btnNext.Enabled
= (!pagedDataSource.IsLastPage);
lblCurrentPage.Text
= "Page: " + (currentPage + 1).ToString() + " of "+
pagedDataSource.PageCount.ToString();
dlOfficeTemplate.DataSource
= pagedDataSource;
dlOfficeTemplate.DataBind();
lblMsg.Visible
= false;
}
else
{
dlOfficeTemplate.DataBind();
lblMsg.Visible
= true;
lblMsg.Text
= "Not Data Found";
}
}
}
});
}
}
catch (Exception ex)
{
PortalLog.LogString("Exception OfficeTemplatesLogo WebPart - Populate DataList
:" + ex.Message);
throw new SPException("Check OfficeTemplatesLogo WebPart - Populate
DataList");
}
}
#endregion
#region Data List Protected Methods
protected string GetImageToDisplayValue(DataRowView oView)
{
string strDisplayHTML = string.Empty;
//strDisplayHTML = oView["LinkFilename"].ToString();
string strImageFileName =
oView["LinkFilename"].ToString();
var parent = (ListView_MSOfficeTemplatesLogo)Parent;
string siteURL = SPContext.Current.Site.Url +
parent.SiteURL;
string libraryName =
parent.TemplatelibraryName;
string strImageUrl =
siteURL + "/" + libraryName + "/" + strImageFileName;
return strImageUrl;
}
protected string GetItemTemplate(DataRowView oView)
{
var parent = (ListView_MSOfficeTemplatesLogo)Parent;
string siteURL = SPContext.Current.Site.Url +
parent.SiteURL;
string libraryName =
parent.TemplatelibraryName;
string strFilename =
oView["LinkFilename"].ToString();
string strTitle = oView["Title"].ToString();
string strImageUrl = siteURL
+ "/" + libraryName + "/" + strFilename;
string strTemplateText = string.Empty;
if (ddlCompanyTemplates.SelectedItem.Text
== "Company Logo")
{
strTemplateText
= string.Format(@"
<table
id='tblOfficeTemplateLogo' cellpadding='0' cellspacing='0' width='850px'>
<tr
style='height:50px;'>
<td
align='center' style='width: 450px; text-align: center; vertical-align:
middle;'>
<img
id='imgLogo' src='{0}' alt='{1}' Target='_blank' height='44px'/>
</td>
<td
style='width: 400px; text-align:left; vertical-align: middle;'>
<a
id='hlnkName' ToolTip='{1}' Target='_blank' href='{0}'>{1}</a>
</td>
</tr>
</table>", strImageUrl, strTitle);
}
else
{
strTemplateText
= string.Format(@"
<table
id='tblOfficeTemplate' cellpadding='0' cellspacing='0' width='850px'>
<tr
style='height:25px;'>
<td
style='width: 450px; text-align:left; vertical-align: middle;'>
<span
id='doc'>{0}</span>
</td>
<td
style='width: 400px; text-align:left; vertical-align: middle;'>
<a
id='hlnkName' ToolTip='{1}' Target='_blank' href='{2}'>{1}</a>
</td>
</tr>
</table>", strFilename, strTitle, strImageUrl);
}
return strTemplateText;
}
#endregion
Container.DataItem Method returns the
expected return html.
No comments:
Post a Comment