or
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using Telerik.Web.UI; using System.Data; public partial class test : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { } public class ExtendedRadGrid : RadGrid { public Int32 Year { get; set; } } protected void Page_Init(Object sender, EventArgs e) { RadScriptManager radScriptManager = new RadScriptManager(); this.form1.Controls.Add(radScriptManager); RadAjaxLoadingPanel radAjaxLoadingPanel = new RadAjaxLoadingPanel() { ID = "radAjaxLoadingPanel", Skin = "Default" }; RadAjaxPanel radAjaxPanel = new RadAjaxPanel() { LoadingPanelID = "radAjaxLoadingPanel" }; RadTabStrip radTabStrip = new RadTabStrip() { Skin = "Default", AutoPostBack = true, MultiPageID = "radMultiPage", SelectedIndex = 0 }; RadMultiPage radMultiPage = new RadMultiPage() { RenderSelectedPageOnly = true, ID = "radMultiPage", SelectedIndex = 0 }; int[] years = new int[] { 2010, 2011 }; foreach (int year in years) { radTabStrip.Tabs.Add(new RadTab(year.ToString(), "RadTabID" + year.ToString()) { PageViewID = "PageViewID" + year.ToString() }); ExtendedRadGrid radGrid = new ExtendedRadGrid(); radGrid.PageSize = 20; radGrid.Skin = "Windows7"; radGrid.Width = Unit.Percentage(100); radGrid.PagerStyle.Mode = GridPagerMode.Slider; radGrid.MasterTableView.TableLayout = GridTableLayout.Fixed; radGrid.Year = year; radGrid.NeedDataSource += new GridNeedDataSourceEventHandler(radGrid_NeedDataSource); radGrid.FilterMenu.ExpandAnimation.Type = AnimationType.None; radGrid.FilterMenu.CollapseAnimation.Type = AnimationType.None; radGrid.AllowSorting = true; radGrid.AllowPaging = true; radGrid.ShowStatusBar = true; radGrid.ShowFooter = true; radGrid.AllowFilteringByColumn = true; radGrid.FilterMenu.EnableShadows = true; radGrid.FilterMenu.EnableRoundedCorners = true; radGrid.ClientSettings.AllowDragToGroup = false; radGrid.AutoGenerateColumns = false; radGrid.ShowGroupPanel = false; radGrid.GroupingEnabled = true; radGrid.GroupingSettings.GroupByFieldsSeparator = " - "; radGrid.GroupHeaderItemStyle.CssClass = "HeaderItem"; radGrid.ItemCreated += RadGrid1_ItemCreated; radGrid.MasterTableView.DataKeyNames = new string[] { "RoleCompensationID", "UnitCompensationID" }; //---------------------------------------------------------------------------------- //Bound columns GridBoundColumn gridBoundColumn; gridBoundColumn = new GridBoundColumn(); gridBoundColumn.DataField = "Title"; gridBoundColumn.HeaderText = "Title"; gridBoundColumn.FooterText = "Title"; radGrid.MasterTableView.Columns.Add(gridBoundColumn); GridTemplateColumn gridTemplateColumn = new GridTemplateColumn(); radGrid.MasterTableView.Columns.Add(gridTemplateColumn); //---------------------------------------------------------------------------------- //GroupByExpressions GridGroupByExpression expression = new GridGroupByExpression(); GridGroupByField gridGroupByField; //SelectFields gridGroupByField = new GridGroupByField(); gridGroupByField.FieldName = "UnitName"; gridGroupByField.HeaderText = " "; gridGroupByField.HeaderValueSeparator = " "; expression.SelectFields.Add(gridGroupByField); gridGroupByField = new GridGroupByField(); gridGroupByField.FieldName = "UnitCompensationID"; gridGroupByField.HeaderText = " "; gridGroupByField.HeaderValueSeparator = " "; gridGroupByField.FormatString = " "; expression.SelectFields.Add(gridGroupByField); //GroupByField gridGroupByField = new GridGroupByField(); gridGroupByField.FieldName = "UnitName"; gridGroupByField.HeaderText = " "; gridGroupByField.HeaderValueSeparator = " "; expression.GroupByFields.Add(gridGroupByField); radGrid.MasterTableView.GroupByExpressions.Add(expression); //---------------------------------------------------------------------------------- RadPageView radPageView = new RadPageView() { ID = "PageViewID" + year }; radPageView.Controls.Add(radGrid); radMultiPage.PageViews.Add(radPageView); } radAjaxPanel.Controls.Add(new LiteralControl("<div style='margin-bottom:-1px;'>")); radAjaxPanel.Controls.Add(radTabStrip); radAjaxPanel.Controls.Add(new LiteralControl("</div>")); radAjaxPanel.Controls.Add(radMultiPage); this.form1.Controls.Add(radAjaxLoadingPanel); this.form1.Controls.Add(radAjaxPanel); } protected void RadGrid1_ItemCreated(object sender, GridItemEventArgs e) { if (e.Item is GridDataItem) { GridDataItem dataItem = e.Item as GridDataItem; dataItem.Attributes.Add("onClick", "alert('" + dataItem.GetDataKeyValue("RoleCompensationID") + "')"); // No problem getting the required id value. } else if (e.Item is GridGroupHeaderItem) { GridGroupHeaderItem gridGroupHeaderItem = e.Item as GridGroupHeaderItem; DataRowView groupDataRow = (DataRowView)gridGroupHeaderItem.DataItem; Button objButton = new Button(); objButton.CommandName = "Add"; objButton.ID = "Button_Add"; objButton.Text = groupDataRow["UnitCompensationID"].ToString(); // Here i created an extra gridGroupByField in selectFields with an empty FormatString for passing ID value. I'm sure there must be a better way... ((GridTableCell)gridGroupHeaderItem.Controls[0]).Controls.Add(objButton); } } void radGrid_NeedDataSource(object sender, GridNeedDataSourceEventArgs e) { //Here I'm retrieving and setting a DataTable as DataSource } }
.Net 3.5
Telerik 2010.3.1317.35
I have a datagrid that has defined columns, and autogenerated columns are set to false,
The dataseource is a datatable and all my databindings are set on datatextfields.
on itemdatabound i compare two of the fields ((int)maxRead and (int)maxNote) and depending on the result i set the row font to bold (to show unread posts)
but as soon as i group any of the columns i get,
"maxRead is neither a DataColumn nor a DataRelation for table GroupedTable0."
I tried adding the maxRead as a defined column in the grid but that gave the same result.
heres my code,
i get the error on the "if ((int)drw["maxRead"] != (int)drw["maxNote"
])'" row below.
protected void grCaseList_ItemDataBound(object sender, GridItemEventArgs e) { if (e.Item.DataItem is DataRowView) { DataRowView drw = (DataRowView)e.Item.DataItem; if ((int)drw["maxRead"] != (int)drw["maxNote"]) { e.Item.Font.Bold = true; } } }<telerik:RadGrid ID="grCaseList" runat="server" Skin="Windows7" AllowPaging="True" AllowSorting="True" GridLines="None" ShowGroupPanel="True" Width="100%" AutoGenerateColumns="False" onitemdatabound="grCaseList_ItemDataBound"> <HeaderContextMenu CssClass="GridContextMenu GridContextMenu_Windows7"></HeaderContextMenu> <MasterTableView EnableColumnsViewState="false"> <CommandItemSettings ExportToPdfText="Export to Pdf"> </CommandItemSettings> <RowIndicatorColumn> <HeaderStyle Width="20px"></HeaderStyle> </RowIndicatorColumn> <ExpandCollapseColumn> <HeaderStyle Width="20px"></HeaderStyle> </ExpandCollapseColumn> <Columns> <telerik:GridHyperLinkColumn DataTextField="cs_id" DataType="System.Int32" FilterControlAltText="Filter cs_id column" HeaderText="ID" UniqueName="cs_id" DataNavigateUrlFields="caseUrl"> </telerik:GridHyperLinkColumn> <telerik:GridHyperLinkColumn DataTextField="cs_header" FilterControlAltText="Filter cs_header column" HeaderText="Rubrik" UniqueName="cs_header" DataNavigateUrlFields="caseUrl"> </telerik:GridHyperLinkColumn> <telerik:GridHyperLinkColumn DataTextField="nt_us_name" FilterControlAltText="Filter nt_us_name column" HeaderText="Senast ändrad av" UniqueName="nt_us_name"> </telerik:GridHyperLinkColumn> <telerik:GridDateTimeColumn DataField="cs_timePosted" FilterControlAltText="Filter cs_timePosted column" HeaderText="Inlagt" UniqueName="cs_timePosted" DataFormatString="{0:yy-MM-dd hh:mm}"> </telerik:GridDateTimeColumn> <telerik:GridDateTimeColumn DataField="cs_timePlanned" DataType="System.DateTime" FilterControlAltText="Filter cs_timePlanned column" HeaderText="Planerat" UniqueName="cs_timePlanned" DataFormatString="{0:yy-MM-dd hh:mm}"> </telerik:GridDateTimeColumn> <telerik:GridDateTimeColumn DataField="cs_timeClosed" FilterControlAltText="Filter cs_timeClosed column" HeaderText="Avslutat" UniqueName="cs_timeClosed" DataFormatString="{0:yy-MM-dd hh:mm}"> </telerik:GridDateTimeColumn> <telerik:GridBoundColumn DataField="cs_fromIP" FilterControlAltText="Filter cs_fromIP column" HeaderText="IP" UniqueName="cs_fromIP"> </telerik:GridBoundColumn> <telerik:GridBoundColumn DataField="cs_fritext" FilterControlAltText="Filter cs_fritext column" HeaderText="Fritext" UniqueName="cs_fritext"> </telerik:GridBoundColumn> <telerik:GridHyperLinkColumn DataTextField="cs_fromComputerName" FilterControlAltText="Filter cs_fromComputerName column" HeaderText="Dator" UniqueName="cs_fromComputerName"> </telerik:GridHyperLinkColumn> <telerik:GridBoundColumn DataField="st_name" FilterControlAltText="Filter st_name column" HeaderText="Status" UniqueName="st_name"> </telerik:GridBoundColumn> <telerik:GridBoundColumn DataField="ty_name" FilterControlAltText="Filter ty_name column" HeaderText="Typ" UniqueName="ty_name"> </telerik:GridBoundColumn> <telerik:GridBoundColumn DataField="prio" FilterControlAltText="Filter prio column" HeaderText="Prio" UniqueName="prio"> </telerik:GridBoundColumn> <telerik:GridDateTimeColumn DataField="nt_timePosted" FilterControlAltText="Filter nt_timePosted column" HeaderText="Uppdaterad" UniqueName="nt_timePosted" DataFormatString="{0:yy-MM-dd hh:mm}"> </telerik:GridDateTimeColumn> <telerik:GridHyperLinkColumn DataTextField="cs_us_name" FilterControlAltText="Filter cs_us_name column" HeaderText="Inlagt av" UniqueName="cs_us_name"> </telerik:GridHyperLinkColumn> <telerik:GridHyperLinkColumn DataTextField="adm_ad_username" FilterControlAltText="Filter adm_ad_username column" HeaderText="Ansvarig" UniqueName="adm_ad_username"> </telerik:GridHyperLinkColumn> <telerik:GridBoundColumn DataField="maxRead" FilterControlAltText="Filter maxRead column" HeaderText="maxRead" UniqueName="maxRead" Visible="False"> </telerik:GridBoundColumn> </Columns> <EditFormSettings> <EditColumn FilterControlAltText="Filter EditCommandColumn column"></EditColumn> </EditFormSettings> </MasterTableView> <ClientSettings AllowDragToGroup="True"> </ClientSettings> <FilterMenu EnableImageSprites="False"></FilterMenu> </telerik:RadGrid> dsHelpdeskG2.caseListDataTable dtCases = null; if (((AdManager.UserInfo)Session[Common.userSession]).Status == AdManager.LoginStatus.User) { dsHelpdeskG2TableAdapters.caseListTableAdapter taCases = new dsHelpdeskG2TableAdapters.caseListTableAdapter(); dtCases = taCases.caseListUser(((AdManager.UserInfo)Session[Common.userSession]).AnstId); } grCaseList.DataSource = dtCases;
grCaseList.DataBind();<html> <head> <title></title> <style type="text/css"> OL LI {LIST-STYLE-TYPE: upper-roman;} OL LI OL LI {LIST-STYLE-TYPE: upper-alpha;} OL LI OL LI OL LI {LIST-STYLE-TYPE: decimal;} </style> </head> <body> <ol> <li>Test... <ol> <li>add sub bullet after this item... </li> <li>it most likely got formatted with an "A" and not a "1"<br /> <ol> <li>It should have been a 1 like this line</li> </ol> </li> </ol> </li> </ol> </body></html>
<telerik:RadScriptManager ID="RadScriptManager1" runat="server"> <Scripts> <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" /> </Scripts> </telerik:RadScriptManager> <div> <telerik:RadFileExplorer ID="fileexplorer1" runat="server" Width="500" Height="500"></telerik:RadFileExplorer> </div>