Initial project's source code check-in.
This commit is contained in:
commit
b03b0b373f
4573 changed files with 981205 additions and 0 deletions
|
@ -0,0 +1,265 @@
|
|||
// Material sourced from the bluePortal project (http://blueportal.codeplex.com).
|
||||
// Licensed under the Microsoft Public License (available at http://www.opensource.org/licenses/ms-pl.html).
|
||||
|
||||
using System;
|
||||
using System.Data;
|
||||
using System.Configuration;
|
||||
using System.IO;
|
||||
using System.Web;
|
||||
using System.Web.Security;
|
||||
using System.Web.UI;
|
||||
using System.Web.UI.WebControls;
|
||||
using System.Web.UI.WebControls.WebParts;
|
||||
using System.Web.UI.HtmlControls;
|
||||
|
||||
namespace CSSFriendly
|
||||
{
|
||||
public abstract class CompositeDataBoundControlAdapter : System.Web.UI.WebControls.Adapters.DataBoundControlAdapter
|
||||
{
|
||||
private WebControlAdapterExtender _extender = null;
|
||||
private WebControlAdapterExtender Extender
|
||||
{
|
||||
get
|
||||
{
|
||||
if (((_extender == null) && (Control != null)) ||
|
||||
((_extender != null) && (Control != _extender.AdaptedControl)))
|
||||
{
|
||||
_extender = new WebControlAdapterExtender(Control);
|
||||
}
|
||||
|
||||
System.Diagnostics.Debug.Assert(_extender != null, "CSS Friendly adapters internal error", "Null extender instance");
|
||||
return _extender;
|
||||
}
|
||||
}
|
||||
|
||||
protected string _classMain = "";
|
||||
protected string _classHeader = "";
|
||||
protected string _classData = "";
|
||||
protected string _classFooter = "";
|
||||
protected string _classPagination = "";
|
||||
protected string _classOtherPage = "";
|
||||
protected string _classActivePage = "";
|
||||
|
||||
protected CompositeDataBoundControl View
|
||||
{
|
||||
get { return Control as CompositeDataBoundControl; }
|
||||
}
|
||||
|
||||
protected DetailsView ControlAsDetailsView
|
||||
{
|
||||
get { return Control as DetailsView; }
|
||||
}
|
||||
|
||||
protected bool IsDetailsView
|
||||
{
|
||||
get { return ControlAsDetailsView != null; }
|
||||
}
|
||||
|
||||
protected FormView ControlAsFormView
|
||||
{
|
||||
get { return Control as FormView; }
|
||||
}
|
||||
|
||||
protected bool IsFormView
|
||||
{
|
||||
get { return ControlAsFormView != null; }
|
||||
}
|
||||
|
||||
protected abstract string HeaderText { get; }
|
||||
protected abstract string FooterText { get; }
|
||||
protected abstract ITemplate HeaderTemplate { get; }
|
||||
protected abstract ITemplate FooterTemplate { get; }
|
||||
protected abstract TableRow HeaderRow { get; }
|
||||
protected abstract TableRow FooterRow { get; }
|
||||
protected abstract bool AllowPaging { get; }
|
||||
protected abstract int DataItemCount { get; }
|
||||
protected abstract int DataItemIndex { get; }
|
||||
protected abstract PagerSettings PagerSettings { get; }
|
||||
|
||||
/// ///////////////////////////////////////////////////////////////////////////////
|
||||
/// METHODS
|
||||
|
||||
protected override void OnInit(EventArgs e)
|
||||
{
|
||||
base.OnInit(e);
|
||||
|
||||
if (Extender.AdapterEnabled)
|
||||
{
|
||||
RegisterScripts();
|
||||
}
|
||||
}
|
||||
|
||||
protected override void RenderBeginTag(HtmlTextWriter writer)
|
||||
{
|
||||
if (Extender.AdapterEnabled)
|
||||
{
|
||||
Extender.RenderBeginTag(writer, _classMain);
|
||||
}
|
||||
else
|
||||
{
|
||||
base.RenderBeginTag(writer);
|
||||
}
|
||||
}
|
||||
|
||||
protected override void RenderEndTag(HtmlTextWriter writer)
|
||||
{
|
||||
if (Extender.AdapterEnabled)
|
||||
{
|
||||
Extender.RenderEndTag(writer);
|
||||
}
|
||||
else
|
||||
{
|
||||
base.RenderEndTag(writer);
|
||||
}
|
||||
}
|
||||
|
||||
protected override void RenderContents(HtmlTextWriter writer)
|
||||
{
|
||||
if (Extender.AdapterEnabled)
|
||||
{
|
||||
if (View != null)
|
||||
{
|
||||
writer.Indent++;
|
||||
|
||||
BuildRow(HeaderRow, _classHeader, writer);
|
||||
BuildItem(writer);
|
||||
BuildRow(FooterRow, _classFooter, writer);
|
||||
BuildPaging(writer);
|
||||
|
||||
writer.Indent--;
|
||||
writer.WriteLine();
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
base.RenderContents(writer);
|
||||
}
|
||||
}
|
||||
|
||||
protected virtual void BuildItem(HtmlTextWriter writer)
|
||||
{
|
||||
}
|
||||
|
||||
protected virtual void BuildRow(TableRow row, string cssClass, HtmlTextWriter writer)
|
||||
{
|
||||
if (row != null)
|
||||
{
|
||||
// If there isn't any content, don't render anything.
|
||||
|
||||
bool bHasContent = false;
|
||||
TableCell cell = null;
|
||||
for (int iCell = 0; iCell < row.Cells.Count; iCell++)
|
||||
{
|
||||
cell = row.Cells[iCell];
|
||||
if ((!String.IsNullOrEmpty(cell.Text)) || (cell.Controls.Count > 0))
|
||||
{
|
||||
bHasContent = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (bHasContent)
|
||||
{
|
||||
writer.WriteLine();
|
||||
writer.WriteBeginTag("div");
|
||||
writer.WriteAttribute("class", cssClass);
|
||||
writer.Write(HtmlTextWriter.TagRightChar);
|
||||
writer.Indent++;
|
||||
writer.WriteLine();
|
||||
|
||||
for (int iCell = 0; iCell < row.Cells.Count; iCell++)
|
||||
{
|
||||
cell = row.Cells[iCell];
|
||||
if (!String.IsNullOrEmpty(cell.Text))
|
||||
{
|
||||
writer.Write(cell.Text);
|
||||
}
|
||||
foreach (Control cellChildControl in cell.Controls)
|
||||
{
|
||||
cellChildControl.RenderControl(writer);
|
||||
}
|
||||
}
|
||||
|
||||
writer.Indent--;
|
||||
writer.WriteLine();
|
||||
writer.WriteEndTag("div");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
protected virtual void BuildPaging(HtmlTextWriter writer)
|
||||
{
|
||||
if (AllowPaging && (DataItemCount > 0))
|
||||
{
|
||||
writer.WriteLine();
|
||||
writer.WriteBeginTag("div");
|
||||
writer.WriteAttribute("class", _classPagination);
|
||||
writer.Write(HtmlTextWriter.TagRightChar);
|
||||
writer.Indent++;
|
||||
|
||||
int iStart = 0;
|
||||
int iEnd = DataItemCount;
|
||||
int nPages = iEnd - iStart + 1;
|
||||
bool bExceededPageButtonCount = nPages > PagerSettings.PageButtonCount;
|
||||
|
||||
if (bExceededPageButtonCount)
|
||||
{
|
||||
iStart = (DataItemIndex / PagerSettings.PageButtonCount) * PagerSettings.PageButtonCount;
|
||||
iEnd = Math.Min(iStart + PagerSettings.PageButtonCount, DataItemCount);
|
||||
}
|
||||
|
||||
writer.WriteLine();
|
||||
|
||||
if (bExceededPageButtonCount && (iStart > 0))
|
||||
{
|
||||
writer.WriteBeginTag("a");
|
||||
writer.WriteAttribute("class", _classOtherPage);
|
||||
writer.WriteAttribute("href", Page.ClientScript.GetPostBackClientHyperlink(Control, "Page$" + iStart.ToString(), true));
|
||||
writer.Write(HtmlTextWriter.TagRightChar);
|
||||
writer.Write("...");
|
||||
writer.WriteEndTag("a");
|
||||
}
|
||||
|
||||
for (int iDataItem = iStart; iDataItem < iEnd; iDataItem++)
|
||||
{
|
||||
string strPage = (iDataItem + 1).ToString();
|
||||
if (DataItemIndex == iDataItem)
|
||||
{
|
||||
writer.WriteBeginTag("span");
|
||||
writer.WriteAttribute("class", _classActivePage);
|
||||
writer.Write(HtmlTextWriter.TagRightChar);
|
||||
writer.Write(strPage);
|
||||
writer.WriteEndTag("span");
|
||||
}
|
||||
else
|
||||
{
|
||||
writer.WriteBeginTag("a");
|
||||
writer.WriteAttribute("class", _classOtherPage);
|
||||
writer.WriteAttribute("href", Page.ClientScript.GetPostBackClientHyperlink(Control, "Page$" + strPage, true));
|
||||
writer.Write(HtmlTextWriter.TagRightChar);
|
||||
writer.Write(strPage);
|
||||
writer.WriteEndTag("a");
|
||||
}
|
||||
}
|
||||
|
||||
if (bExceededPageButtonCount && (iEnd < DataItemCount))
|
||||
{
|
||||
writer.WriteBeginTag("a");
|
||||
writer.WriteAttribute("class", _classOtherPage);
|
||||
writer.WriteAttribute("href", Page.ClientScript.GetPostBackClientHyperlink(Control, "Page$" + (iEnd + 1).ToString(), true));
|
||||
writer.Write(HtmlTextWriter.TagRightChar);
|
||||
writer.Write("...");
|
||||
writer.WriteEndTag("a");
|
||||
}
|
||||
|
||||
writer.Indent--;
|
||||
writer.WriteLine();
|
||||
writer.WriteEndTag("div");
|
||||
}
|
||||
}
|
||||
|
||||
protected virtual void RegisterScripts()
|
||||
{
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue