or
<
td
>
<
telerik:RadDatePicker
runat
=
"server"
ID
=
"PeriodStartCalendar"
/>
</
td
>
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="DashBoardGrid.ascx.cs"
Inherits="WebUserControlTest.WebUserControl1" %>
<
script
type
=
"text/javascript"
>
function pageLoad(sender, eventArgs)
{
}
</
script
>
<
telerik:RadGrid
ID
=
"DashboardGrid"
runat
=
"server"
PageSize
=
"8"
AllowPaging
=
"true"
Width
=
"60%"
PagerStyle-AlwaysVisible
=
"false"
AllowFilteringByColumn
=
"True"
AllowSorting
=
"True"
OnNeedDataSource
=
"DashGrid_NeedDataSource"
CellSpacing
=
"1"
OnPageIndexChanged
=
"DashboardGrid_PagingCommand"
GridLines
=
"None"
OnSortCommand
=
"DashboardGrid_SortCommand"
PagerStyle-Mode
=
"NextPrev"
ClientIDMode
=
"Static"
GroupingEnabled
=
"False"
OnSelectedCellChanged
=
"DashboardGrid_SelectedCellChanged1"
PagerStyle-HorizontalAlign
=
"Center"
PagerStyle-VerticalAlign
=
"Middle"
SelectedItemStyle-VerticalAlign
=
"Top"
MasterTableView-PageSize
=
"8"
>
<
MasterTableView
AllowMultiColumnSorting
=
"true"
TableLayout
=
"Fixed"
>
<
CommandItemSettings
ExportToPdfText
=
"Export to PDF"
></
CommandItemSettings
>
<
RowIndicatorColumn
Visible
=
"True"
FilterControlAltText
=
"Filter RowIndicator column"
>
</
RowIndicatorColumn
>
<
ExpandCollapseColumn
Visible
=
"True"
FilterControlAltText
=
"Filter ExpandColumn column"
>
</
ExpandCollapseColumn
>
<
EditFormSettings
>
<
EditColumn
FilterControlAltText
=
"Filter EditCommandColumn column"
>
</
EditColumn
>
</
EditFormSettings
>
</
MasterTableView
>
<
ClientSettings
>
<
Selecting
AllowRowSelect
=
"true"
/>
</
ClientSettings
>
<
FilterMenu
EnableImageSprites
=
"False"
>
</
FilterMenu
>
</
telerik:RadGrid
>
string QueryOrStoredProcedure, bool HasStoredProcedure and int DatabaseEnum are public properties (of the custom user
control)
PAGE_LOAD :
protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { LoadData(); //DashboardGrid.ClientSettings.DataBinding.EnableCaching = true; DashboardGrid.DataBind(); } }
string
ConnectionString =
string
.Empty;
string
SelectQuery =
string
.Empty;
if
(!HasStoredProcedure)
SelectQuery = QueryOrStoredProcedure;
ConnectionStringSettingsCollection ConnctionStringCollection = ConfigurationManager.ConnectionStrings;
if
(ConnctionStringCollection !=
null
)
{
foreach
(ConnectionStringSettings connection
in
ConnctionStringCollection)
{
if
(
string
.Equals(connection.Name,
"LocalConnectionString"
))
{
ConnectionString = connection.ConnectionString;
if
(!
string
.IsNullOrEmpty(DB 1) && !
string
.IsNullOrEmpty(DB 2) && !
string
.IsNullOrEmpty(DB 3) && !
string
.IsNullOrEmpty(DB 4) && !
string
.IsNullOrEmpty(DB 5) && ConnectionString.Contains(
"master"
))
{
switch
(DatabaseEnum)
{
case
1:
ConnectionString = ConnectionString.Replace(
"master"
, DB 1);
break
;
case
2:
ConnectionString = ConnectionString.Replace(
"master"
, DB 2);
break
;
case
3:
ConnectionString = ConnectionString.Replace(
"master"
, DB 3);
break
;
case
4:
ConnectionString = ConnectionString.Replace(
"master"
, DB 4);
break
;
case
5:
ConnectionString = ConnectionString.Replace(
"master"
, DB 5);
break
;
default
:
ConnectionString = ConnectionString.Replace(
"master"
, DB 6);
break
;
}
}
break
;
}
}
SqlConnection Connection =
new
SqlConnection(ConnectionString);
SqlDataAdapter Adapter =
new
SqlDataAdapter();
DataSet DashboardGridDataSet =
new
DataSet();
try
{
Connection.Open();
if
(Connection.State.ToString().ToLower() ==
"open"
)
{
Adapter.SelectCommand =
new
SqlCommand(SelectQuery, Connection);
Adapter.Fill(DashboardGridDataSet);
}
}
finally
{
Connection.Close();
}
DataView DashboardGridDataView = DashboardGridDataSet.Tables[0].DefaultView;
DashboardGrid.DataSource = DashboardGridDataView;
Session[
"DashboardGridData"
] = DashboardGridDataView;
Session[
"GridPages"
] = DashboardGrid.PageCount;
}
}
protected
void
DashboardGrid_PagingCommand(
object
sender, Telerik.Web.UI.GridPageChangedEventArgs e)
{
if
(e.NewPageIndex < Convert.ToInt32(Session[
"GridPages"
]) && e.NewPageIndex >= 0)
DashboardGrid.CurrentPageIndex = e.NewPageIndex;
DashboardGrid.Rebind();
}
protected
void
DashboardGrid_SortCommand(
object
sender, Telerik.Web.UI.GridSortCommandEventArgs e)
{
DataView DashGridData = Session[
"DashboardGridData"
]
as
DataView;
if
(DashGridData !=
null
)
{
DashGridData.Sort = e.SortExpression +
" "
+ GetSortDirection(e.SortExpression);
// GetSortDirection() is some function that returns ASC & DESC alternatively
DashboardGrid.DataSource = DashGridData;
DashboardGrid.Rebind();
}
}
<div id=
"GridShowCaseDivision"
runat=
"server"
style="width: 100%; position: absolute;
height: 100%; right: 0; top: 10">
<telerik:RadRotator ID=
"GridShowCaseRotator"
runat=
"server"
Width=
"60%"
ItemHeight=
"100%"
Height=
"35%"
WrapFrames=
"false"
ItemWidth=
"50%"
RegisterWithScriptManager=
"true"
RotatorType=
"Buttons"
Visible=
"true"
>
<Items>
<telerik:RadRotatorItem Width=
"15%"
>
<ItemTemplate>
<Dashboard:IconGrid runat=
"server"
ID=
"EventGrid"
DatabaseEnum=
"4"
HasStoredProcedure=
"false"
QueryOrStoredProcedure=
" VALID AND TESTED SQL QUERY"
/>
</ItemTemplate>
</telerik:RadRotatorItem>
</Items>
</telerik:RadRotator>
</div>
<
telerik:RadGrid
ID
=
"gvMain"
runat
=
"server"
AutoGenerateColumns
=
"false"
Skin
=
"Metro_JS"
EnableEmbeddedSkins
=
"false"
AllowSorting
=
"true"
AllowAutomaticUpdates
=
"false"
AllowAutomaticInserts
=
"false"
AllowAutomaticDeletes
=
"false"
>
<
ClientSettings
EnableRowHoverStyle
=
"true"
AllowKeyboardNavigation
=
"true"
>
<
ClientEvents
OnKeyPress
=
"GridKeyPress"
OnCommand
=
"onEditCommand"
/>
<
KeyboardNavigationSettings
AllowSubmitOnEnter
=
"true"
AllowActiveRowCycle
=
"true"
/>
</
ClientSettings
>
<
MasterTableView
EnableNoRecordsTemplate
=
"true"
DataKeyNames
=
"ID"
AllowCustomSorting
=
"true"
EditMode
=
"InPlace"
Name
=
"Discount"
>
<
HeaderStyle
CssClass
=
"StandardText"
/>
<
ItemStyle
CssClass
=
"Clickable"
/>
<
AlternatingItemStyle
CssClass
=
"Clickable"
/>
<
NoRecordsTemplate
>
<
asp:Panel
ID
=
'pnlEmpty'
runat
=
'server'
style
=
'position: relative; width: 100%; height: 30px;'
>
<
asp:Label
ID
=
'lblEmpty'
runat
=
'server'
Text
=
'No Results Found'
style
=
'font-weight: bold; position: absolute; top: 10px; left: 10px;'
CssClass
=
'StandardText'
/>
</
asp:Panel
>
</
NoRecordsTemplate
>
<
Columns
>
<
telerik:GridBoundColumn
DataField
=
"Name"
HeaderText
=
"Name"
UniqueName
=
"DiscountName"
MaxLength
=
"100"
ItemStyle-Width
=
"600px"
></
telerik:GridBoundColumn
>
<
telerik:GridTemplateColumn
HeaderText
=
"Start Date"
ItemStyle-Width
=
"160px"
>
<
ItemTemplate
>
<
asp:Label
ID
=
'lblStartDate'
runat
=
'server'
Text
=
''
CssClass
=
'StandardText'
/>
</
ItemTemplate
>
<
EditItemTemplate
>
<
telerik:RadDatePicker
ID
=
"rdpStartDate"
runat
=
"server"
Width
=
"150px"
>
</
telerik:RadDatePicker
>
<
asp:RequiredFieldValidator
ID
=
"valAmount"
ControlToValidate
=
"rdpStartDate"
runat
=
"server"
Text
=
"*"
SetFocusOnError
=
"True"
Display
=
"Dynamic"
EnableViewState
=
"true"
ErrorMessage
=
"Please enter a start date"
></
asp:RequiredFieldValidator
>
</
EditItemTemplate
>
</
telerik:GridTemplateColumn
>
<
telerik:GridTemplateColumn
HeaderText
=
"End Date"
ItemStyle-Width
=
"160px"
>
<
ItemTemplate
>
<
asp:Label
ID
=
'lblFinishDate'
runat
=
'server'
Text
=
''
CssClass
=
'StandardText'
/>
</
ItemTemplate
>
<
EditItemTemplate
>
<
telerik:RadDatePicker
ID
=
"rdpFinishDate"
runat
=
"server"
Width
=
"150px"
>
</
telerik:RadDatePicker
>
</
EditItemTemplate
>
</
telerik:GridTemplateColumn
>
<
telerik:GridEditCommandColumn
ButtonType
=
"ImageButton"
UniqueName
=
"EditCommandColumn"
ItemStyle-CssClass
=
"EditColumn"
UpdateImageUrl
=
"../Images/tick-icon.png"
CancelImageUrl
=
"../Images/arrow-undo-icon.png"
InsertImageUrl
=
"../Images/tick-icon.png"
/>
<
telerik:GridTemplateColumn
ItemStyle-CssClass
=
"DeleteColumn"
UniqueName
=
"DeleteColumn"
>
<
ItemTemplate
>
<
asp:ImageButton
ID
=
"imgDelete"
runat
=
"server"
ImageUrl
=
"~/Images/cross.png"
CommandName
=
"Delete"
ToolTip
=
"Delete"
OnClientClick
=
"return confirm('Are you sure you want to delete this Discount?');"
CommandArgument='<%# Eval("ID") %>' />
</
ItemTemplate
>
</
telerik:GridTemplateColumn
>
</
Columns
>
<
DetailTables
>
<
telerik:GridTableView
AllowAutomaticUpdates
=
"false"
AllowAutomaticInserts
=
"false"
AllowAutomaticDeletes
=
"false"
DataKeyNames
=
"ID"
Name
=
"DiscountItem"
ShowHeader
=
"false"
EditMode
=
"InPlace"
AllowPaging
=
"true"
PagerStyle-Position
=
"Bottom"
AllowCustomPaging
=
"true"
>
<
SortExpressions
>
<
telerik:GridSortExpression
FieldName
=
"SortOrder"
SortOrder
=
"Ascending"
/>
</
SortExpressions
>
<
ItemStyle
CssClass
=
"Clickable"
/>
<
AlternatingItemStyle
CssClass
=
"Clickable"
/>
<
NoRecordsTemplate
>
<
asp:Panel
ID
=
'pnlEmpty'
runat
=
'server'
style
=
'position: relative; width: 100%; height: 30px;'
>
<
asp:Label
ID
=
'lblEmpty'
runat
=
'server'
Text
=
'No Results Found'
style
=
'font-weight: bold; position: absolute; top: 10px; left: 10px;'
CssClass
=
'StandardText'
/>
</
asp:Panel
>
</
NoRecordsTemplate
>
<
Columns
>
<
telerik:GridTemplateColumn
ItemStyle-Width
=
"750px"
>
<
ItemTemplate
>
<
asp:Panel
ID
=
'pnlMessage'
runat
=
'server'
Width
=
"750px"
Height
=
"20px"
>
<
asp:Label
ID
=
"lblCustomerClause"
runat
=
"server"
Text
=
"When [Customer] orders "
></
asp:Label
>
<
asp:Label
ID
=
"lblQuantityClause"
runat
=
"server"
Text
=
"between [Min] and [Max] "
></
asp:Label
>
<
asp:Label
ID
=
"lblItemClause"
runat
=
"server"
Text
=
"of [Item] "
></
asp:Label
>
<
asp:Label
ID
=
"lblPriceClause"
runat
=
"server"
Text
=
"the price is [discount_type][discount_value]. "
></
asp:Label
>
</
asp:Panel
>
</
ItemTemplate
>
<
EditItemTemplate
>
<
asp:Panel
ID
=
'pnlEditMessage'
runat
=
'server'
Width
=
"750px"
>
<
asp:Label
ID
=
"lblCustomerClause1"
runat
=
"server"
Text
=
"When "
style
=
'position: relative; top: 3px;'
></
asp:Label
>
<
telerik:RadComboBox
ID
=
"cboCustomerOrGroup"
runat
=
"server"
Skin
=
"Metro_JobSync"
EnableEmbeddedSkins
=
"false"
OnClientSelectedIndexChanged
=
"selectCustomerOrGroup"
>
<
Items
>
<
telerik:RadComboBoxItem
Text
=
"Customer"
Value
=
"C"
/>
<
telerik:RadComboBoxItem
Text
=
"Customer Group"
Value
=
"G"
/>
</
Items
>
</
telerik:RadComboBox
>
<
asp:TextBox
ID
=
'txtCustomer'
runat
=
'server'
style
=
'width: 120px;'
CssClass
=
'StandardText txtCustomer'
onkeydown
=
'invalidateCustomerMain();'
/>
<
ajax:AutoCompleteExtender
runat
=
'server'
ID
=
'acTxtCustomer'
TargetControlID
=
'txtCustomer'
ServicePath
=
'~/Ajax.asmx'
ServiceMethod
=
'SearchCustomer'
MinimumPrefixLength
=
'3'
CompletionSetCount
=
'10'
CompletionInterval
=
'1'
CompletionListHighlightedItemCssClass
=
'searchTextMouseOver'
CompletionListItemCssClass
=
'searchText'
EnableCaching
=
'false'
OnClientItemSelected
=
'gridCustomerClicked'
FirstRowSelected
=
'true'
CompletionListCssClass
=
'searchBox'
/>
<
asp:TextBox
ID
=
'hidCustomerID'
CssClass
=
"hidCustomerID"
style
=
"display: none;"
runat
=
'server'
Text
=
'0'
></
asp:TextBox
>
<
asp:TextBox
ID
=
'txtCustomerDiscountGroup'
runat
=
'server'
style
=
'width: 120px;'
CssClass
=
'StandardText txtCustomerDiscountGroup'
onkeydown
=
'invalidateCustomerMain();'
/>
<
ajax:AutoCompleteExtender
runat
=
'server'
ID
=
'acCustomerDiscountGroup'
TargetControlID
=
'txtCustomerDiscountGroup'
ServicePath
=
'~/Ajax.asmx'
ServiceMethod
=
'SearchCustomerDiscountGroup'
MinimumPrefixLength
=
'1'
CompletionSetCount
=
'10'
CompletionInterval
=
'1'
CompletionListHighlightedItemCssClass
=
'searchTextMouseOver'
CompletionListItemCssClass
=
'searchText'
EnableCaching
=
'false'
FirstRowSelected
=
'true'
CompletionListCssClass
=
'searchBox'
/>
<
asp:Label
ID
=
"lblCustomerClause2"
runat
=
"server"
Text
=
" orders "
style
=
'position: relative; top: 3px;'
></
asp:Label
>
<
telerik:RadComboBox
ID
=
"cboQuantityType"
runat
=
"server"
Width
=
"80px"
Skin
=
"Metro_JobSync"
EnableEmbeddedSkins
=
"false"
OnClientSelectedIndexChanged
=
"selectQuantityType"
>
<
Items
>
<
telerik:RadComboBoxItem
Text
=
"up to"
Value
=
"<"
/>
<
telerik:RadComboBoxItem
Text
=
"at least"
Value=">" />
<
telerik:RadComboBoxItem
Text
=
"between"
Value="><" />
</
Items
>
</
telerik:RadComboBox
>
<
telerik:RadNumericTextBox
runat
=
"server"
ID
=
"txtMinQuantity"
CssClass
=
"txtMinQuantity"
Width
=
"60px"
></
telerik:RadNumericTextBox
>
<
asp:Label
ID
=
"lblQuantityClause2"
runat
=
"server"
Text
=
" and "
CssClass
=
"lblQuantityClause2"
style
=
'position: relative; top: 3px;'
></
asp:Label
>
<
telerik:RadNumericTextBox
runat
=
"server"
ID
=
"txtMaxQuantity"
CssClass
=
"txtMaxQuantity"
Width
=
"60px"
></
telerik:RadNumericTextBox
>
<
telerik:RadComboBox
ID
=
"cboItemOrCategory"
runat
=
"server"
Width
=
"140px"
Skin
=
"Metro_JobSync"
EnableEmbeddedSkins
=
"false"
OnClientSelectedIndexChanged
=
"selectItemOrCategory"
>
<
Items
>
<
telerik:RadComboBoxItem
Text
=
"of item"
Value
=
"I"
/>
<
telerik:RadComboBoxItem
Text
=
"from item category"
Value
=
"C"
/>
</
Items
>
</
telerik:RadComboBox
>
<
asp:TextBox
ID
=
'txtItem'
runat
=
'server'
style
=
'width: 170px;'
CssClass
=
'StandardText txtItem'
onkeydown
=
'invalidateItemMain();'
/>
<
ajax:AutoCompleteExtender
runat
=
'server'
ID
=
'acTxtItem'
TargetControlID
=
'txtItem'
ServicePath
=
'~/Ajax.asmx'
ServiceMethod
=
'SearchItemDistinctName'
MinimumPrefixLength
=
'3'
CompletionSetCount
=
'10'
CompletionInterval
=
'1'
CompletionListHighlightedItemCssClass
=
'searchTextMouseOver'
CompletionListItemCssClass
=
'searchText'
EnableCaching
=
'false'
OnClientItemSelected
=
'gridItemClicked'
FirstRowSelected
=
'true'
CompletionListCssClass
=
'searchBox'
/>
<
asp:TextBox
ID
=
'hidItemID'
CssClass
=
'hidItemID'
style
=
"display: none;"
runat
=
'server'
Text
=
'0'
></
asp:TextBox
>
<
asp:Label
ID
=
"lblLocationClause"
runat
=
"server"
Text
=
" from "
CssClass
=
"lblLocationClause"
style
=
'position: relative; top: 3px;'
></
asp:Label
>
<
telerik:RadComboBox
ID
=
"cboLocation"
runat
=
"server"
Skin
=
"Metro_JobSync"
EnableEmbeddedSkins
=
"false"
>
</
telerik:RadComboBox
>
<
telerik:RadComboBox
ID
=
"cboItemCategory"
runat
=
"server"
Width
=
"312px"
ShowToggleImage
=
"True"
AutoPostBack
=
"true"
Style
=
"vertical-align: middle;"
OnClientDropDownOpened
=
"OnClientDropDownOpenedHandler"
ExpandAnimation-Type
=
"None"
CollapseAnimation-Type
=
"None"
Skin
=
"Metro_JobSync"
EnableEmbeddedSkins
=
"false"
>
<
ItemTemplate
>
<
asp:Panel
ID
=
'pnlTreeView'
runat
=
'server'
onclick
=
'StopPropagation(event);'
>
<
telerik:RadTreeView
ID
=
"tvItemCategory"
runat
=
"server"
style
=
'position: relative; width: 292px; z-index: 10; color: Black;'
Skin
=
"Metro_JobSync"
EnableEmbeddedSkins
=
"false"
>
</
telerik:RadTreeView
>
</
asp:Panel
>
</
ItemTemplate
>
<
Items
>
<
telerik:RadComboBoxItem
Text
=
""
CssClass
=
"TreeViewWrapper"
/>
</
Items
>
</
telerik:RadComboBox
>
<
asp:Label
ID
=
"lblPriceClause"
runat
=
"server"
Text
=
"the price "
style
=
'position: relative; top: 3px;'
></
asp:Label
>
<
telerik:RadComboBox
ID
=
"cboDiscountType"
runat
=
"server"
Width
=
"170px"
Skin
=
"Metro_JobSync"
EnableEmbeddedSkins
=
"false"
>
<
Items
>
<
telerik:RadComboBoxItem
Text
=
"is discounted by amount "
Value
=
"1"
/>
<
telerik:RadComboBoxItem
Text
=
"is discounted by percentage "
Value
=
"2"
/>
<
telerik:RadComboBoxItem
Text
=
"is set to"
Value
=
"3"
/>
</
Items
>
</
telerik:RadComboBox
>
<
telerik:RadNumericTextBox
runat
=
"server"
ID
=
"txtDiscountValue"
Width
=
"60px"
></
telerik:RadNumericTextBox
>
</
asp:Panel
>
</
EditItemTemplate
>
</
telerik:GridTemplateColumn
>
<
telerik:GridEditCommandColumn
ButtonType
=
"ImageButton"
UniqueName
=
"EditCommandColumn"
ItemStyle-CssClass
=
"EditColumn"
UpdateImageUrl
=
"../Images/tick-icon.png"
CancelImageUrl
=
"../Images/arrow-undo-icon.png"
InsertImageUrl
=
"../Images/tick-icon.png"
/>
<
telerik:GridTemplateColumn
ItemStyle-CssClass
=
"DeleteColumn"
UniqueName
=
"DeleteColumn"
ItemStyle-Width
=
"25px"
>
<
ItemTemplate
>
<
asp:ImageButton
ID
=
"imgDelete"
runat
=
"server"
ImageUrl
=
"~/Images/cross.png"
CommandName
=
"Delete"
ToolTip
=
"Delete"
OnClientClick
=
"return confirm('Are you sure you want to delete this Discount Item?');"
CommandArgument='<%# Eval("ID") %>' />
</
ItemTemplate
>
</
telerik:GridTemplateColumn
>
</
Columns
>
</
telerik:GridTableView
>
</
DetailTables
>
</
MasterTableView
>
</
telerik:RadGrid
>
For
Each
dataItem
As
GridDataItem
In
rgd_Tasks.Items