public DataTable SelectMethod(string filterExpression, string sortExpression, string strDoctype, int maximumRows, int startRowIndex){ DataTable oTable = new DataTable(); Doctype oDoctype = new Doctype(); bool bSuccess = true; Hashtable oInfo = new Hashtable(); try { oDoctype = DoctypeADO.Retrieve_byDoctypeID(strDoctype); } catch { bSuccess = false; } if (bSuccess) { oTable.Columns.Add("DocumentID", typeof(String)); oTable.Columns.Add("DoctypeID", typeof(String)); XmlDocument oDoc = new XmlDocument(); oDoc.LoadXml(oDoctype.DoctypeXML); foreach (XmlNode oNode in oDoc.DocumentElement) { oInfo.Add(oNode.Name, oNode.ChildNodes[0].InnerText); } ICollection oColl = oInfo.Keys; List<string> oBuilder = new List<string>(); foreach (string strkey in oColl) { string type = string.Empty; switch (oInfo[strkey].ToString()) { case "Boolean": { type = "Bit"; oTable.Columns.Add(strkey, typeof(Boolean)); break; } case "Byte": { type = "smallint"; oTable.Columns.Add(strkey, typeof(Byte)); break; } case "DateTime": { type = "datetime"; oTable.Columns.Add(strkey, typeof(DateTime)); break; } case "Double": { type = "decimal"; oTable.Columns.Add(strkey, typeof(Double)); break; } case "Int16": { type = "smallint"; oTable.Columns.Add(strkey, typeof(Int16)); break; } case "Int32": { type = "int"; oTable.Columns.Add(strkey, typeof(Int32)); break; } case "Single": { type = "decimal"; oTable.Columns.Add(strkey, typeof(Single)); break; } case "String": { type = "varchar(100)"; oTable.Columns.Add(strkey, typeof(String)); break; } default: { break; } } oBuilder.Add("document_xml.value('(//Fields/" + strkey + "/Value)[1]','" + type + "') as " + strkey); } string strQuery = @"select document_id as DocumentID, doctype_id as DoctypeID, " + String.Join(",", oBuilder.ToArray()) + @" from ( select row_number() over (order by document_id asc) as rownumber, * from cs_document where doctype_id = @doc_id ) as test where ROWNUMBER between @nStart+1 and @nEnd"; strQuery = AddFilter_Sorting(strQuery, filterExpression, sortExpression); oCommand = new SqlCommand(strQuery); oCommand.Parameters.Add( new SqlParameter { DbType = DbType.String, ParameterName = "doc_id", Value = strDoctype }); oCommand.Parameters.Add( new SqlParameter { DbType = DbType.Int32, ParameterName = "nStart", Value = startRowIndex }); oCommand.Parameters.Add( new SqlParameter { DbType = DbType.Int32, ParameterName = "nEnd", Value = startRowIndex + maximumRows }); oCommand.Connection = oConnection; try { oConnection.Open(); oReader = oCommand.ExecuteReader(); while (oReader.Read()) { object[] data = new object[oTable.Columns.Count]; for (int i = 0; i < oTable.Columns.Count; i++) { data[i] = oReader[oTable.Columns[i].ColumnName]; } DataRow oRow = oTable.NewRow(); oRow.ItemArray = data; oTable.Rows.Add(oRow); } } catch (Exception ex) { throw ex; } } return oTable;}
protected void ObjectDataSource1_Selecting(object sender, ObjectDataSourceSelectingEventArgs e)
{
e.InputParameters["filterExpression"] = RadGrid1.MasterTableView.FilterExpression;
e.InputParameters["sortExpression"] = RadGrid1.MasterTableView.SortExpressions.GetSortString();
} <telerik:RadGrid ID="RadGrid1" runat="server" Width="100%" GridLines="None" AllowPaging="true" AutoGenerateColumns="true" AllowFilteringByColumn="false" PageSize="10" AllowSorting="true" Skin="Outlook" DataSourceID="ObjectDataSource1"> <MasterTableView AllowCustomSorting="true" OverrideDataSourceControlSorting="true"> <CommandItemSettings ExportToPdfText="Export to Pdf"></CommandItemSettings> <Columns> <telerik:GridTemplateColumn UniqueName="Uniq" HeaderText="Check" AllowFiltering="False"> <ItemTemplate> <asp:CheckBox ID="check" runat="server" /> </ItemTemplate> </telerik:GridTemplateColumn> </Columns> <HeaderStyle VerticalAlign="Middle" /> <ItemStyle VerticalAlign="Middle" /> <FilterItemStyle VerticalAlign="Middle" /> </MasterTableView> </telerik:RadGrid> <asp:ObjectDataSource ID="ObjectDataSource1" TypeName="WebApplication1.DatabaseHandle.ObjectSource" EnablePaging="true" SelectMethod="SelectMethod" SelectCountMethod="MySelectCount" runat="server" OnSelecting="ObjectDataSource1_Selecting"> <SelectParameters> <asp:Parameter Name="filterExpression" Type="String" /> <asp:Parameter Name="sortExpression" Type="String" /> <asp:ControlParameter ControlID="hidden_doctype" DbType="String" PropertyName="Value" Name="strDoctype" /> </SelectParameters> </asp:ObjectDataSource>The control collection cannot be modified during DataBind, Init, Load, PreRender or Unload phases.Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.Exception Details: System.Web.HttpException: The control collection cannot be modified during DataBind, Init, Load, PreRender or Unload phases.Source Error:An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.Stack Trace:[HttpException (0x80004005): The control collection cannot be modified during DataBind, Init, Load, PreRender or Unload phases.] System.Web.UI.ControlCollection.Add(Control child) +8680983 Telerik.Web.UI.GridDateTimeColumn.GetSharedCalendar() +192 Telerik.Web.UI.GridDateTimeColumn.SetupFilterControls(TableCell cell) +2169 Telerik.Web.UI.GridColumn.InitializeCell(TableCell cell, Int32 columnIndex, GridItem inItem) +5498 Telerik.Web.UI.GridBoundColumn.InitializeCell(TableCell cell, Int32 columnIndex, GridItem inItem) +50 Telerik.Web.UI.GridItem.Initialize(GridColumn[] columns) +142 Telerik.Web.UI.GridItem.SetupItem(Boolean dataBind, Object dataItem, GridColumn[] columns, ControlCollection rows) +939 Telerik.Web.UI.GridTableView.CreateFilteringItem(Boolean useDataSource, GridColumn[] copiedColumnSet, GridTHead thead) +146 Telerik.Web.UI.GridTableView.CreateControlHierarchy(Boolean useDataSource) +1495 Telerik.Web.UI.GridTableView.CreateChildControls(IEnumerable dataSource, Boolean useDataSource) +777 System.Web.UI.WebControls.CompositeDataBoundControl.PerformDataBinding(IEnumerable data) +57 System.Web.UI.WebControls.DataBoundControl.OnDataSourceViewSelectCallback(IEnumerable data) +114 System.Web.UI.DataSourceView.Select(DataSourceSelectArguments arguments, DataSourceViewSelectCallback callback) +31 System.Web.UI.WebControls.DataBoundControl.PerformSelect() +142 Telerik.Web.UI.GridTableView.PerformSelect() +38 System.Web.UI.WebControls.BaseDataBoundControl.DataBind() +73 Telerik.Web.UI.GridTableView.DataBind() +351 System.Web.UI.WebControls.BaseDataBoundControl.EnsureDataBound() +82 System.Web.UI.WebControls.BaseDataBoundControl.OnPreRender(EventArgs e) +22 Telerik.Web.UI.GridTableView.OnPreRender(EventArgs e) +57 System.Web.UI.Control.PreRenderRecursiveInternal() +80 System.Web.UI.Control.PreRenderRecursiveInternal() +171 System.Web.UI.Control.PreRenderRecursiveInternal() +171 System.Web.UI.Control.PreRenderRecursiveInternal() +171 System.Web.UI.Control.PreRenderRecursiveInternal() +171 System.Web.UI.Control.PreRenderRecursiveInternal() +171 System.Web.UI.Control.PreRenderRecursiveInternal() +171 System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +842<telerik:RadGrid ID="RadGrid2" runat="server" ShowStatusBar="true" AutoGenerateColumns="False" AllowSorting="True" skin="Windows7"> <MasterTableView DataKeyNames="DepartmentID"> <%--I want to put a link here--%> <DetailTables> <telerik:GridTableView Name="DetailsGrid"> <Columns> <telerik:GridBoundColumn SortExpression="PersonName" HeaderText="Person Name" DataField="PersonName"></telerik:GridBoundColumn> </Columns> </telerik:GridTableView> </DetailTables> <Columns> <telerik:GridBoundColumn SortExpression="DepartmentName" HeaderText="Department Name" DataField="DepartmentName"></telerik:GridBoundColumn> </Columns> </MasterTableView> </telerik:RadGrid><%@ Register Src="../Modules/Controls/nav.ascx" TagName="Navigation" TagPrefix="uc1" %>...<uc1:Navigation ID="Navigation" runat="server" /><%@ Control Language="VB" AutoEventWireup="false" CodeFile="nav.ascx.vb" Inherits="Modules_Controls_nav" %><div id="nav" runat="server" class="navigation"> <!-- Inner Content Goes here --></div>Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load Dim oNavigation As Modules_Controls_nav = DirectCast(Me.Master.Controls(0).FindControl("Navigation"), Modules_Controls_nav) RadAjaxManager.AjaxSettings.AddAjaxSetting(rgdProductList, oNavigation) Dim oNav As HtmlGenericControl = DirectCast(Me.Master.Controls(0).FindControl("Navigation").FindControl("nav"), HtmlGenericControl) RadAjaxManager.AjaxSettings.AddAjaxSetting(rgdProductList, oNav) End Sub<telerik:RadEditor Width="99%" SpellCheckSettings-DictionaryPath="~/App_files/RadSpell" ID="editor" EditModes="Design" StripFormattingOptions="Span, Font, Css, MSWordRemoveAll" NewLineBr="false" runat="server"> <CssFiles> <telerik:EditorCssFile Value="~/styles/userControls/editorDefaults.css" /> </CssFiles></telerik:RadEditor>
Each appointment is associated with status (like created, confirmed, completed etc) and appointment should have color schema based on appointment status.
For example, all created appointments should disply in Red, confirmed appointments should display in Yellow etc.
Also, buttons should be displayed with each appointments, when user clicks on any button, appointment status should changed accordingly. i.e, when user clicks on Yellow Button, appointment status should be changed to confirmed.
To achieve above requirement, am making use of Appointment Template, AppointmentCreated event, AppointmentCommand events of Schedular control.
Am using AppointmentCreated event for background color logic and AppointmentCommad event for updating appointment status logic.
When I clicks on button, which is in appointment template, order of events which are fired are AppointmentCreated, AppointmentCommand.
Everything working fine so far which satisfies my requirement. But the problem is, some times (randomly), buttons requires multiple clicks to fire “AppointmentCommand” event. In other words, when I click on button, it is only fires “AppointmentCreated” and not firing “AppointmentCommand”.
Any one, could you please help me in this issue. Thanks in advance.
Thanks,
Sumanth
