public class GridBoundMultiSelectFilterColumn : GridBoundColumn
{
private readonly XrefGateway _xrefGateway = new XrefGateway();
protected override void SetupFilterControls(TableCell cell)
{
base.SetupFilterControls(cell);
cell.Controls.RemoveAt(0);
var comboBox = new RadComboBox() { ID = this.DataField + "Filter", AutoPostBack = true, CheckBoxes = true, EnableCheckAllItemsCheckBox = true};
IList<
string
> options = _xrefGateway.GetUniqueColumnValues(DataField);
foreach (var option in options)
{
comboBox.Items.Add(new RadComboBoxItem(option));
}
cell.Controls.AddAt(0, comboBox);
cell.Controls.RemoveAt(1);
comboBox.SelectedIndexChanged += comboBox_SelectedIndexChanged;
if(Filter != null)
{
foreach (RadComboBoxItem item in comboBox.Items)
{
item.Checked = Filter.Values.Contains(item.Text);
}
}
}
void comboBox_SelectedIndexChanged(object sender, RadComboBoxSelectedIndexChangedEventArgs e)
{
var comboBox = (RadComboBox)sender;
if ((Filter == null || Filter.Values.Count == 0) && comboBox.CheckedItems.Count == 0)
return;
Filter = new MultiSelectFilter() { ColumnName = DataField };
foreach (RadComboBoxItem item in comboBox.CheckedItems)
{
Filter.Values.Add(item.Text);
}
var filterItem = comboBox.NamingContainer as GridFilteringItem;
filterItem.FireCommandEvent("CustomFilter", Filter);
}
protected override string GetFilterDataField()
{
return this.DataField;
}
private MultiSelectFilter Filter
{
get { return (MultiSelectFilter) ViewState["Filter"]; }
set { ViewState["Filter"] = value; }
}
}
function PrintReport() { |
var splitter = $find("<%= rsReport.ClientID %>"); |
var pane = splitter.getPaneById("<%= rcPane.ClientID %>"); |
if (!pane) return; |
var cssFileAbsPaths = new Array(); |
cssFileAbsPaths[0] = '<%= Me.MyAppPath %>/global/css/global.css'; |
cssFileAbsPaths[1] = '<%= Me.MyAppPath %>/common/css/tools.css'; |
pane.Print(cssFileAbsPaths); |
} |
class AppointmentInfo
{
private readonly string _id;
private string _subject;
private DateTime _start;
private DateTime _end;
private string _unit;
private string _clr;
private string _img;
public string ID
{
get { return _id; }
}
public string Subject
{
get { return _subject; }
set { _subject = value; }
}
public DateTime Start
{
get { return _start; }
set { _start = value; }
}
public DateTime End
{
get { return _end; }
set { _end = value; }
}
public string Unit
{
get { return _unit; }
set { _unit = value; }
}
public string Clr
{
get { return _clr; }
set { _clr = value; }
}
public string Img
{
get { return _img; }
set { _img = value; }
}
private AppointmentInfo()
{
_id =
Guid.NewGuid().ToString();
}
public AppointmentInfo(string unitid, DateTime start, DateTime end, string unit, string clr, string img)
:
this()
{
_subject = unitid;
_start = start;
_end = end;
_unit = unit;
_clr = clr;
_img = img;
}
public AppointmentInfo(Appointment source)
:
this()
{
CopyInfo(source);
}
public void CopyInfo(Appointment source)
{
Subject = source.Subject;
Start = source.Start;
End = source.End;
//Resource unit = source.Resources.GetResourceByType("unit");
//if (user != null)
//{
// UnitID = (int?)unit.Key;
//}
//else
//{
// UnitID = null;
//}
}
}
public
partial class Calendar : Common.PortalPage
{
private const string AppointmentsKey = "Telerik.Web.Examples.Scheduler.BindToList.CS.Apts";
 
private List<AppointmentInfo> UnitList
{
get
{
List<AppointmentInfo > sessApts = Session[AppointmentsKey] as List<AppointmentInfo>;
if (sessApts == null)
{
sessApts =
new List<AppointmentInfo>();
Session[AppointmentsKey] = sessApts;
}
return sessApts;
}
}
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
Session.Remove(AppointmentsKey);
ResourceType resType = new ResourceType("unit");
resType.ForeignKeyField =
"UnitID";
RadScheduler1.ResourceTypes.Add(resType);
RadScheduler1.Resources.Add(
new Resource("unit", 1, "unit1"));
RadScheduler1.Resources.Add(
new Resource("unit", 2, "unit2"));
RadScheduler1.Resources.Add(
new Resource("unit", 3, "unit3"));
LoadData();
}
RadScheduler1.DataSource = UnitList;
}
private void LoadData()
{
...get data from sql db
units = SIMS.BL.Presentation.Contracts.
Extensions.GetPortalCalendarUnits(this.UserCredential, request);
UnitList.Clear();
foreach (InspectionUnit Unit in units)
{
UnitList.Add (
new AppointmentInfo(Convert.ToString(Unit.UnitID), (DateTime)(Unit.InsTimeBlockStart),
(
DateTime)(Unit.InsTimeBlockEnd), Unit.Unit, Unit.Clr, Unit.Img));
}
}
<
telerik:RadAjaxManager ID="RadAjaxManager1" runat="server">
<AjaxSettings>
<telerik:AjaxSetting AjaxControlID="RadScheduler1">
<UpdatedControls>
<telerik:AjaxUpdatedControl ControlID="RadScheduler1" LoadingPanelID="RadAjaxLoadingPanel1" />
</UpdatedControls>
</telerik:AjaxSetting>
</AjaxSettings>
</telerik:RadAjaxManager>
<telerik:RadAjaxLoadingPanel ID="RadAjaxLoadingPanel1" runat="server" />
<td valign="top" >
<telerik:RadScheduler ID="RadScheduler1" runat="server" SelectedView="WeekView"
Width ="884px" Skin="Web20"
DayStartTime="07:00:00" DayEndTime="20:00:00"
DataKeyField="ID" DataStartField="Start" DataEndField="End" DataSubjectField="Subject"
OnAppointmentCreated="RadScheduler1_AppointmentCreated"
onappointmentclick="RadScheduler1_AppointmentClick"
OnNavigationComplete="RadScheduler1_NavigationComplete"
onappointmentinsert="RadScheduler1_AppointmentInsert"
>
<AdvancedForm Modal = "false" />
<TimelineView UserSelectable="false" />
<TimeSlotContextMenuSettings EnableDefault ="true" />
<AppointmentContextMenuSettings EnableDefault ="true" />
<Reminders Enabled="false" />
</telerik:RadScheduler>
<
asp:Content
ID
=
"cMain"
ContentPlaceHolderID
=
"cphMain"
runat
=
"server"
>
<
telerik:RadAjaxManager
ID
=
"RadAjaxManager1"
runat
=
"server"
>
<
AjaxSettings
>
<
telerik:AjaxSetting
AjaxControlID
=
"rgvCorporateSummary"
>
<
UpdatedControls
>
<
telerik:AjaxUpdatedControl
ControlID
=
"rgvCorporateSummary"
LoadingPanelID
=
"rgvCorporateSummaryLoadingPanel"
/>
</
UpdatedControls
>
</
telerik:AjaxSetting
>
</
AjaxSettings
>
</
telerik:RadAjaxManager
>
<
telerik:RadAjaxLoadingPanel
ID
=
"rgvCorporateSummaryLoadingPanel"
runat
=
"server"
>
</
telerik:RadAjaxLoadingPanel
>
<
telerik:RadGrid
ID
=
"rgvCorporateSummary"
runat
=
"server"
AutoGenerateColumns
=
"false"
ShowStatusBar
=
"true"
ShowFooter
=
"true"
Skin
=
"WebBlue"
OnCustomAggregate
=
"rgvCorporateSummary_CustomAggregate"
OnNeedDataSource
=
"rgvCorporateSummary_NeedDataSource"
OnDetailTableDataBind
=
"rgvCorporateSummary_DetailTableDataBind"
OnItemCreated
=
"rgvCorporateSummary_ItemCreated"
>
<
FooterStyle
BackColor
=
"#718CA1"
ForeColor
=
"White"
/>
<
MasterTableView
DataKeyNames
=
"LocationID"
AllowMultiColumnSorting
=
"True"
HorizontalAlign
=
"Right"
Width
=
"100%"
>
</
MasterTableView
>
</
telerik:RadGrid
>
</
asp:Content
>
<%@ Register Assembly="Telerik.Web.UI" Namespace="Telerik.Web.UI" TagPrefix="telerik" %>
...
<
telerik:RadScriptManager
ID
=
"rdScriptManager"
runat
=
"server"
EnablePartialRendering
=
"true"
AsyncPostBackTimeout
=
"3600"
>
<
Scripts
>
...
</
Scripts
>
</
telerik:RadScriptManager
>