<%@ Page Language="VB" AutoEventWireup="false" CodeFile="Default.aspx.vb" Inherits="_Default" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<
html
xmlns
=
"http://www.w3.org/1999/xhtml"
>
<
head
runat
=
"server"
>
<
title
></
title
>
<
telerik:RadStyleSheetManager
id
=
"RadStyleSheetManager1"
runat
=
"server"
/>
</
head
>
<
body
>
<
form
id
=
"form1"
runat
=
"server"
>
<
telerik:RadScriptManager
ID
=
"RadScriptManager1"
runat
=
"server"
>
<
Scripts
>
<%--Needed for JavaScript IntelliSense in VS2010--%>
<%--For VS2008 replace RadScriptManager with ScriptManager--%>
<
asp:ScriptReference
Assembly
=
"Telerik.Web.UI"
Name
=
"Telerik.Web.UI.Common.Core.js"
/>
<
asp:ScriptReference
Assembly
=
"Telerik.Web.UI"
Name
=
"Telerik.Web.UI.Common.jQuery.js"
/>
<
asp:ScriptReference
Assembly
=
"Telerik.Web.UI"
Name
=
"Telerik.Web.UI.Common.jQueryInclude.js"
/>
</
Scripts
>
</
telerik:RadScriptManager
>
<
script
type
=
"text/javascript"
>
//Put your JavaScript code here.
</
script
>
<
telerik:RadAjaxManager
ID
=
"RadAjaxManager1"
runat
=
"server"
>
</
telerik:RadAjaxManager
>
<
div
>
<
telerik:RadGrid
runat
=
"server"
ID
=
"RadGrid"
AutoGenerateColumns
=
"false"
AllowCustomPaging
=
"true"
AllowPaging
=
"true"
PageSize
=
"50"
AllowFilteringByColumn
=
"true"
EnableLinqExpressions
=
"false"
>
<
GroupingSettings
CaseSensitive
=
"False"
/>
<
ClientSettings
>
<
Selecting
AllowRowSelect
=
"True"
/>
<
Scrolling
AllowScroll
=
"True"
ScrollHeight
=
"100%"
UseStaticHeaders
=
"True"
/>
</
ClientSettings
>
<
PagerStyle
AlwaysVisible
=
"True"
/>
<
MasterTableView
OverrideDataSourceControlSorting
=
"True"
>
<
NoRecordsTemplate
>
</
NoRecordsTemplate
>
<
Columns
>
<%--Some columns here--%>
</
Columns
>
</
MasterTableView
>
</
telerik:RadGrid
>
</
div
>
</
form
>
</
body
>
</
html
>
Imports Telerik.Web.UI
Imports System.Data
Partial Class _Default
Inherits System.Web.UI.Page
Protected Sub RadGrid_NeedDataSource(ByVal sender As Object, ByVal e As Telerik.Web.UI.GridNeedDataSourceEventArgs) Handles RadGrid.NeedDataSource
Dim VirtualItemCount As Integer = GetDatasVirtualItemsCount(RadGrid.MasterTableView.FilterExpression)
RadGrid.MasterTableView.VirtualItemCount = VirtualItemCount
RadGrid.VirtualItemCount = VirtualItemCount
Dim startIndex As Integer = IIf((ShouldApplySortFilterOrGroup()), 0, RadGrid.CurrentPageIndex * RadGrid.PageSize)
Dim pageSize As Integer = IIf((ShouldApplySortFilterOrGroup()), VirtualItemCount, RadGrid.PageSize)
RadGrid.DataSource = GetDatas(startIndex, pageSize, RadGrid.MasterTableView.FilterExpression)
End Sub
Private isGrouping As Boolean = False
Protected Sub RadGrid1_GroupsChanging(ByVal source As Object, ByVal e As GridGroupsChangingEventArgs)
isGrouping = True
If e.Action = GridGroupsChangingAction.Ungroup AndAlso RadGrid.CurrentPageIndex > 0 Then
isGrouping = False
End If
End Sub
Public Function ShouldApplySortFilterOrGroup() As Boolean
Return RadGrid.MasterTableView.FilterExpression <> "" _
OrElse (RadGrid.MasterTableView.GroupByExpressions.Count > 0 OrElse isGrouping) OrElse RadGrid.MasterTableView.SortExpressions.Count > 0
End Function
Private Function GetDatas(ByVal startIndex As Integer, ByVal pageSize As Integer, ByVal FilterExpression As String) As DataTable
' ------------
' Some Code that generates a datatable considering both CustomPaging and Filtering
' ------------
Return New DataTable
End Function
Private Function GetDatasVirtualItemsCount(ByVal FilterExpression As String) As Integer
' ------------
' Some Code that count the number of rows considering Filtering
' ------------
Return -1
End Function
End Class
Imports Telerik.Web.UI
Imports System.Data
Partial Class _Default2
Inherits System.Web.UI.Page
Protected Sub RadGrid_NeedDataSource(ByVal sender As Object, ByVal e As Telerik.Web.UI.GridNeedDataSourceEventArgs) Handles RadGrid.NeedDataSource
Dim VirtualItemCount As Integer = GetDatasVirtualItemsCount(RadGrid.MasterTableView.FilterExpression)
RadGrid.MasterTableView.VirtualItemCount = VirtualItemCount
RadGrid.VirtualItemCount = VirtualItemCount
Dim startIndex As Integer = RadGrid.CurrentPageIndex * RadGrid.PageSize
Dim pageSize As Integer = RadGrid.PageSize
RadGrid.DataSource = GetDatas(startIndex, pageSize, RadGrid.MasterTableView.FilterExpression)
End Sub
Private Function GetDatas(ByVal startIndex As Integer, ByVal pageSize As Integer, ByVal FilterExpression As String) As DataTable
' ------------
' Some Code that generates a datatable considering both CustomPaging and Filtering
' ------------
Return New DataTable
End Function
Private Function GetDatasVirtualItemsCount(ByVal FilterExpression As String) As Integer
' ------------
' Some Code that count the number of rows considering Filtering
' ------------
Return -1
End Function
End Class
<telerik:RadGrid ID="RadGrid1" runat="server" AllowPaging="True" GridLines="None" AllowFilteringByColumn="True" AllowSorting="True" Skin="Windows7" OnItemDataBound="RadGrid1_ItemDataBound" OnSelectedIndexChanged="RadGrid1_SelectedIndexChanged" DataSourceID="odsTransactionsValidees" onprerender="RadGrid1_PreRender" OnExcelMLExportStylesCreated="RadGrid1_ExcelMLExportStylesCreated" onexcelmlexportrowcreated="RadGrid1_ExcelMLExportRowCreated">...
<ExportSettings OpenInNewWindow="True" ExportOnlyData="True" FileName="ExportValidees" IgnorePaging="true" Excel-Format="ExcelML" />....
<MasterTableView DataSourceID="odsTransactionsValidees" AutoGenerateColumns="False" NoMasterRecordsText="Pas de transactions." Font-Size="Medium" UseAllDataFields="true" DataKeyNames="ID_TRANSACTION,DOUTE_CLASSIFICATION" OverrideDataSourceControlSorting="true" AllowNaturalSort="true" CommandItemDisplay="Bottom"> <CommandItemSettings ExportToExcelText="Export Excel" ShowExportToExcelButton="False" ShowAddNewRecordButton="False" ShowRefreshButton="False" />....
</telerik:RadGrid>....
protected void RadGrid1_ExcelMLExportStylesCreated(object source, GridExportExcelMLStyleCreatedArgs e) { // ajoute les bordures de cellule BorderStylesCollection borders = new BorderStylesCollection(); BorderStyles borderStyle = null; for (int i = 1; i <= 4; i++) { borderStyle = new BorderStyles(); borderStyle.PositionType = (PositionType)i; borderStyle.Color = System.Drawing.Color.Black; borderStyle.LineStyle = LineStyle.Continuous; borderStyle.Weight = 1.0; borders.Add(borderStyle); } foreach (StyleElement style in e.Styles) { foreach (BorderStyles border in borders) { style.Borders.Add(border); } } StyleElement style1 = new StyleElement("MyStyleWhite"); style1.InteriorStyle.Pattern = InteriorPatternType.Solid; style1.InteriorStyle.Color = System.Drawing.Color.White; e.Styles.Add(style1); StyleElement style2 = new StyleElement("MyStyleOrange"); style2.InteriorStyle.Pattern = InteriorPatternType.Solid; style2.InteriorStyle.Color = System.Drawing.Color.Orange; e.Styles.Add(style2); }
protected void RadGrid1_ExcelMLExportRowCreated(object sender, GridExportExcelMLRowCreatedArgs e) { string typeTransaction = hidType.Value; if (e.RowType == GridExportExcelMLRowType.DataRow) { if (typeTransaction == TypeTransactionValide || typeTransaction == TypeTransactionValideReseau) { string style; foreach (GridDataItem item in RadGrid1.MasterTableView.Items) { string color = item.BackColor.ToString(); if (!(bool)item.GetDataKeyValue("DOUTE_CLASSIFICATION")) { style = "myStyleWhite"; } else { style = "myStyleOrange"; } foreach (CellElement cellElement in e.Row.Cells) { cellElement.StyleValue = style; } } } } }
Hi,
Im using Prometheus Rad grid . i try to group the grid by three fields.
first two fields are gridboundcolumn and i have given them within the groupby expression and another field is template field. I enabled the grouping for this template field as per help document.
Below is the Code,
<
telerik:RadGrid ID="RadGrid1" runat="server" Skin="Office2007" SkinsOverrideStyles="false"AutoGenerateColumns="false" BorderWidth="1px" BorderStyle="Solid" BorderColor="ActiveBorder">
<ClientSettings AllowGroupExpandCollapse="true">
</ClientSettings>
<MasterTableView GroupLoadMode ="Client" >
<GroupByExpressions>
<telerik:GridGroupByExpression>
<SelectFields>
<telerik:GridGroupByField HeaderText=" " FieldName="Status" FormatString="{0:D}"
HeaderValueSeparator=" "></telerik:GridGroupByField>
</SelectFields>
<GroupByFields>
<telerik:GridGroupByField FieldName="Status" ></telerik:GridGroupByField>
</GroupByFields>
</telerik:GridGroupByExpression>
<telerik:GridGroupByExpression>
<SelectFields>
<telerik:GridGroupByField HeaderText=" " FieldName="TSACode" FormatString="{0:D}"
HeaderValueSeparator=" "></telerik:GridGroupByField>
</SelectFields>
<GroupByFields>
<telerik:GridGroupByField FieldName="TSACode" SortOrder="Ascending"></telerik:GridGroupByField>
</GroupByFields>
</telerik:GridGroupByExpression>
</GroupByExpressions>
<Columns>
<telerik:GridBoundColumn Visible="false" HeaderText="Status" DataField="Status" UniqueName="Status"></telerik:GridBoundColumn>
<telerik:GridBoundColumn Visible="false" HeaderText="TSA" DataField="TSACode" UniqueName="TSACode"> </telerik:GridBoundColumn>
<telerik:GridBoundColumn Visible="false" HeaderText="PubId" DataField="PubId" UniqueName="PubId"></telerik:GridBoundColumn>
<telerik:GridTemplateColumn Groupable="true" GroupByExpression="Title GROUP BY Title"
ItemStyle-Width="60%" HeaderText="Title" UniqueName="Title">
<ItemTemplate>
<asp:HyperLink ID="hypLnk" CssClass="HyperLink" runat="server" Text='<%# DataBinder.Eval(Container, "DataItem.Title") %>'
ToolTip="Publication Info" Target="_blank">
</asp:HyperLink>
</ItemTemplate>
</telerik:GridTemplateColumn>
<telerik:GridBoundColumn HeaderText="Country" DataField="CountryCode" UniqueName="CountryCode">
</telerik:GridBoundColumn>
</
Columns>
</MasterTableView>
</telerik:RadGrid>
Actual Result : Grid is grouped according to the two fields mentioned in the group by expression. group is missing for "Title" template column. Im getting Title and country as dataitems<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="Calendar.ascx.cs" Inherits="SitefinityWebApp.Controls.Calendar" %>
<
telerik:RadScheduler
ID
=
"rsCalendar"
runat
=
"server"
Skin
=
"Office2007"
ReadOnly
=
"True"
SelectedView
=
"MonthView"
MonthView-VisibleAppointmentsPerDay
=
"15"
OverflowBehavior
=
"Expand"
CustomAttributeNames
=
"Link"
RowHeight
=
"35px"
>
<
TimelineView
UserSelectable
=
"false"
/>
<
WeekView
UserSelectable
=
"false"
/>
<
DayView
UserSelectable
=
"false"
/>
<
AdvancedForm
DateFormat
=
"M/d/yyyy"
TimeFormat
=
"h:mm tt"
/>
<
AppointmentTemplate
>
<
a
href='<%#Eval("Link") %>'><%#Eval("Subject")%></
a
>
<%--<
a
href='CourseDescription.aspx?cid=<%#Eval("ID") %>'><%#Eval("Subject")%></
a
>--%>
</
AppointmentTemplate
>
<
monthview
visibleappointmentsperday
=
"15"
AdaptiveRowHeight
=
"True"
/>
</
telerik:RadScheduler
>
protected
void
Page_Load(
object
sender, EventArgs e)
{
//if (!IsPostBack)
//{
FillCalendar(DateTime.Now);
//}
}
protected
void
rsCalendar_NavigationComplete(
object
sender, SchedulerNavigationCompleteEventArgs e)
{
FillCalendar(rsCalendar.SelectedDate);
}
/// <summary>
/// Fills the calendar with the info
/// </summary>
private
void
FillCalendar(DateTime selDate)
{
List<CoursesByDate> cal = dbContext.GetCoursesByDate(selDate).ToList();
rsCalendar.DataSource = cal;
rsCalendar.DataKeyField =
"CourseCode"
;
rsCalendar.DataSubjectField =
"Course_Description"
;
rsCalendar.DataStartField =
"Begin_Date"
;
rsCalendar.DataEndField =
"End_Date"
;
rsCalendar.DataBind();
}
<
telerik:GridButtonColumn UniqueName="btnEdit" CommandName="Edit" Text="Edit" ButtonType="PushButton"
Visible="false">
We tried using oncommand and writing some javascript code but that is not an option.
It interferes with required field validators.
The cancel button is autogenerated and we are not writing any code for it.
Please suggest something as it is an urgent requirement.