or
using System;using System.Collections.Generic;using System.Linq;using System.Web;using System.Web.UI;using System.Web.UI.WebControls;using ERMS.Entities;using ERMS.Services;using System.Data;using Telerik.Web.UI;using Telerik.Web.UI.Calendar;using Telerik.Web.UI.Scheduler;/// <summary>/// Summary description for OpenAccessCustomProvider/// </summary>public class OpenAccessCustomProvider : OpenAccessProviderBase{ public OpenAccessCustomProvider() { // // TODO: Add constructor logic here // } public override void Delete(RadScheduler owner, Appointment appointmentToDelete) { throw new NotImplementedException(); } #region " Declaration " Orders objOrders = new Orders(); OrdersService objOrdersService = new OrdersService(); TList<Orders> objOrdersList = new TList<Orders>(); ViewGetSearchOrdersService objOrderView = new ViewGetSearchOrdersService(); DataSet dsOrderView = new DataSet(); #endregion #region " Variables " Int32 _int_cnt = 0; #endregion public override IEnumerable<Appointment> GetAppointments(RadScheduler owner) { List<Appointment> appList = new List<Appointment>(); DateTime dtEndDate = new DateTime(); DateTime dtStartDate = new DateTime(); dsOrderView = objOrderView.GetPaged("CompanyIDF = " + (new clsPageBase()).SESSION_COMPANYID + "", "OrderDate", 0, int.MaxValue, out _int_cnt).ToDataSet(true); if (dsOrderView != null && dsOrderView.Tables.Count > 0) { for (int i = 0; i < dsOrderView.Tables[0].Rows.Count; i++) { if (!string.IsNullOrEmpty(dsOrderView.Tables[0].Rows[i]["StartDate"].ToString())) { if (string.IsNullOrEmpty(dsOrderView.Tables[0].Rows[i]["StartTime"].ToString()) == false) { dtStartDate = Convert.ToDateTime(Convert.ToDateTime(dsOrderView.Tables[0].Rows[i]["StartDate"]).ToString("MM dd yyyy") + " " + dsOrderView.Tables[0].Rows[i]["StartTime"].ToString()); } } if (!string.IsNullOrEmpty(dsOrderView.Tables[0].Rows[i]["FinishDate"].ToString())) { if (string.IsNullOrEmpty(dsOrderView.Tables[0].Rows[i]["FinishTime"].ToString()) == false) { dtEndDate = Convert.ToDateTime(Convert.ToDateTime(dsOrderView.Tables[0].Rows[i]["FinishDate"]).ToString("MM dd yyyy") + " " + dsOrderView.Tables[0].Rows[i]["FinishTime"].ToString()); } } Appointment newApponitment = new Appointment(); newApponitment.Owner = owner; newApponitment.ID = dsOrderView.Tables[0].Rows[i]["OrderID"].ToString(); newApponitment.Subject = dsOrderView.Tables[0].Rows[i]["Title"].ToString(); newApponitment.Start = dtStartDate; newApponitment.End = dtEndDate; Resource newResource = new Resource(); newResource.Type = "OrderStatus"; newResource.Key = newApponitment.ID; newResource.Text = dsOrderView.Tables[0].Rows[i]["OrderStatus"].ToString(); newApponitment.Resources.Add(newResource); appList.Add(newApponitment); } } return appList; } public override IEnumerable<ResourceType> GetResourceTypes(RadScheduler owner) { ResourceType[] resourceTypes = new ResourceType[1]; resourceTypes[0] = new ResourceType("OrderStatus", false); return resourceTypes; } public override IEnumerable<Resource> GetResourcesByType(RadScheduler owner, string resourceType) { List<Resource> OrderResources = new List<Resource>(); TList<OrderStatus> objOrderStatusList = new TList<OrderStatus>(); foreach (OrderStatus item in (new OrderStatusService()).GetAll()) { Resource newResource = new Resource(); newResource.Type = "OrderStatus"; newResource.Key = item.Id; newResource.Text = item.Status; OrderResources.Add(newResource); } return OrderResources; } public override void Insert(RadScheduler owner, Appointment appointmentToInsert) { throw new NotImplementedException(); } public override void Update(RadScheduler owner, Appointment appointmentToUpdate) { throw new NotImplementedException(); }}<telerik:RadScheduler runat="server" ID="RadScheduler1" Skin="Default" ShowFooter="true" OverflowBehavior="Scroll" SelectedView="MonthView" Height="100%" NumberOfHoveredRows="1" DataKeyField="ID" DataSubjectField="Subject" DataStartField="Start" DataEndField="End"TimelineView-UserSelectable="false" Culture="(Default)" StartInFullTime="true"AllowDelete="false" AllowEdit="false" AllowInsert="false" ShowViewTabs="true"OnAppointmentDataBound="RadScheduler1_AppointmentDataBound" ProviderName="OpenAccessProvider" OnAppointmentCreated="RadScheduler1_AppointmentCreated"> <Localization AdvancedAllDayEvent="All day" /> <AdvancedForm DateFormat="M/d/yyyy" TimeFormat="h:mm tt" /> <AppointmentTemplate> <asp:LinkButton ID="lnkSubject" runat="server"></asp:LinkButton> </AppointmentTemplate></telerik:RadScheduler>protected void RadScheduler1_AppointmentCreated(object sender, AppointmentCreatedEventArgs e) { Label lblRed = (Label)e.Container.FindControl("lblRed"); LinkButton lnkSubject = (LinkButton)e.Container.FindControl("lnkSubject"); lnkSubject.Text = clsGeneral.ShowSingleQuote(e.Appointment.Subject); //lnkSubject.Attributes.Add("onClick", "return DoFilter('" + e.Appointment.ID.ToString() + "','" + e.Appointment.Resources.GetResourceByType("OrderStatus").Text + "');"); lnkSubject.Attributes.Add("onclick", "return DisplayEventInformation(" + e.Appointment.ID.ToString() + " );"); lnkSubject.Attributes.Add("onmouseover", "javascript:ddrivetip('<b>Click here to manage this Event</b>',250);"); lnkSubject.Attributes.Add("onmouseout", "javascript:hideddrivetip();"); e.Appointment.ToolTip = ""; lblRed.Text = e.Appointment.Resources.GetResourceByType("OrderStatus").Text; } protected void RadScheduler1_AppointmentDataBound(object source, SchedulerEventArgs e) { Int64 OrderID = 0; OrderID = Convert.ToInt64(e.Appointment.ID); objOrders = objOrdersService.GetById(OrderID); DateTime dtOrder = Convert.ToDateTime(objOrders.OrderDate); DateTime dtStartOn = Convert.ToDateTime(e.Appointment.Start); DateTime dtToday = DateTime.Now; Int64 days = 0; Int64 days1 = 0; days = clsGeneral.DateDiff(clsGeneral.DateInterval.Hour, dtToday, dtStartOn); days = days / 24; days1 = clsGeneral.DateDiff(clsGeneral.DateInterval.Hour, dtOrder, dtStartOn); days1 = days1 / 24; //For the Highest Priority Order,Consider Today Date and StartUp Date //For the Rush Order,Consider the Order Date to Start Date Difference if (days1 <= 5) { e.Appointment.CssClass = "rsCategoryBlue"; } else { if (days <= 5) { e.Appointment.CssClass = "rsCategoryRed"; } else if (days > 5) { e.Appointment.CssClass = "rsCategoryYellow"; } } }<telerik:RadGrid ID="RadGrid1" runat="server" AutoGenerateColumns="False" Skin="Telerik" AllowAutomaticDeletes="True" DataSourceID="SqlDataSourceQuoteItems" GridLines="None" AllowAutomaticInserts="True" OnItemDeleted="RadGrid1_ItemDeleted" OnItemInserted="RadGrid1_ItemInserted"> <MasterTableView DataSourceID="SqlDataSourceQuoteItems" CommandItemDisplay="TopAndBottom" AutoGenerateColumns="False" DataKeyNames="id"> <RowIndicatorColumn> <HeaderStyle Width="20px"></HeaderStyle> </RowIndicatorColumn> <ExpandCollapseColumn> <HeaderStyle Width="20px"></HeaderStyle> </ExpandCollapseColumn> <Columns> <telerik:GridEditCommandColumn ButtonType="ImageButton" UniqueName="EditCommandColumn"> <ItemStyle CssClass="MyImageButton" /> </telerik:GridEditCommandColumn> <telerik:GridBoundColumn DataField="id" DataType="System.Int32" HeaderText="id" ReadOnly="True" SortExpression="id" UniqueName="id" Visible="False"> </telerik:GridBoundColumn> <telerik:GridBoundColumn DataField="QuoteNo" HeaderText="QuoteNo" SortExpression="QuoteNo" UniqueName="QuoteNo" Visible="False"> </telerik:GridBoundColumn> <telerik:GridBoundColumn DataField="Room" HeaderText="Room" SortExpression="Room" UniqueName="Room" ColumnEditorID="GridTextBoxRoom"> </telerik:GridBoundColumn> <telerik:GridBoundColumn DataField="Elevation" HeaderText="Elevation" SortExpression="Elevation" UniqueName="Elevation" ColumnEditorID="GridTextBoxElevation"> </telerik:GridBoundColumn> <telerik:GridBoundColumn DataField="PartNo" HeaderText="PartNo" SortExpression="PartNo" UniqueName="PartNo" ColumnEditorID="GridTextBoxPartNo" ReadOnly="true"> </telerik:GridBoundColumn> <telerik:GridBoundColumn DataField="Qty" DataType="System.Double" HeaderText="Qty" SortExpression="Qty" UniqueName="Qty" ColumnEditorID="GridNumericQty"> </telerik:GridBoundColumn> <telerik:GridBoundColumn DataField="ListPrice" DataType="System.Double" HeaderText="Price" SortExpression="ListPrice" UniqueName="ListPrice" ColumnEditorID="GridTextBoxListPrice" ReadOnly="true"> </telerik:GridBoundColumn> <telerik:GridBoundColumn DataField="TotalPrice" DataType="System.Double" HeaderText="Total Price" SortExpression="TotalPrice" UniqueName="TotalPrice" ColumnEditorID="GridTextBoxTotalPrice" ReadOnly="true"> </telerik:GridBoundColumn> <telerik:GridBoundColumn DataField="EachWeight" DataType="System.Double" HeaderText="Weight" SortExpression="EachWeight" UniqueName="EachWeight" ColumnEditorID="GridTextBoxEachWeight" ReadOnly="true"> </telerik:GridBoundColumn> <telerik:GridBoundColumn DataField="TotalWeight" DataType="System.Double" HeaderText="Total Weight" SortExpression="TotalWeight" UniqueName="TotalWeight" ColumnEditorID="GridTextBoxTotalWeight" ReadOnly="true"> </telerik:GridBoundColumn> <telerik:GridBoundColumn DataField="EachCubes" DataType="System.Double" HeaderText="Cubes" SortExpression="EachCubes" UniqueName="EachCubes" ColumnEditorID="GridTextBoxEachCubes" ReadOnly="true"> </telerik:GridBoundColumn> <telerik:GridBoundColumn DataField="TotalCubes" DataType="System.Double" HeaderText="Total Cubes" SortExpression="TotalCubes" UniqueName="TotalCubes" ColumnEditorID="GridTextBoxTotalCubes" ReadOnly="true"> </telerik:GridBoundColumn> <telerik:GridButtonColumn ConfirmText="Delete this product?" ConfirmDialogType="RadWindow" ConfirmTitle="Delete" ButtonType="ImageButton" CommandName="Delete" Text="Delete" UniqueName="DeleteColumn"> <ItemStyle HorizontalAlign="Center" CssClass="MyImageButton" /> </telerik:GridButtonColumn> </Columns> <EditFormSettings ColumnNumber="7" CaptionDataField="PartNo" CaptionFormatString="Edit properties of Product {0}"> <FormTableItemStyle Wrap="False"></FormTableItemStyle> <FormCaptionStyle CssClass="EditFormHeader"></FormCaptionStyle> <FormMainTableStyle GridLines="None" CellSpacing="0" CellPadding="3" BackColor="White" Width="100%" /> <FormTableStyle CellSpacing="0" CellPadding="2" Height="110px" BackColor="White" /> <FormTableAlternatingItemStyle Wrap="False"></FormTableAlternatingItemStyle> <EditColumn ButtonType="ImageButton" InsertText="Insert Product" UpdateText="Update record" UniqueName="EditCommandColumn1" CancelText="Cancel edit"> </EditColumn> <FormTableButtonRowStyle HorizontalAlign="Right" CssClass="EditFormButtonRow"></FormTableButtonRowStyle> </EditFormSettings> </MasterTableView> <ClientSettings> <ClientEvents OnRowDblClick="RowDblClick" /> </ClientSettings> </telerik:RadGrid> <telerik:GridTextBoxColumnEditor ID="GridTextBoxRoom" runat="server" TextBoxStyle-Width="25px" /> <telerik:GridTextBoxColumnEditor ID="GridTextBoxElevation" runat="server" TextBoxStyle-width="25px" /> <telerik:GridTextBoxColumnEditor ID="GridTextBoxPartNo" runat="server" TextBoxStyle-width="90px" /> <telerik:GridTextBoxColumnEditor ID="GridTextBoxListPrice" runat="server" TextBoxStyle-width="45px" /> <telerik:GridTextBoxColumnEditor ID="GridTextBoxTotalPrice" runat="server" TextBoxStyle-width="45px" /> <telerik:GridTextBoxColumnEditor ID="GridTextBoxEachWeight" runat="server" TextBoxStyle-width="35px" /> <telerik:GridTextBoxColumnEditor ID="GridTextBoxTotalWeight" runat="server" TextBoxStyle-width="35px" /> <telerik:GridTextBoxColumnEditor ID="GridTextBoxEachCubes" runat="server" TextBoxStyle-width="40px" /> <telerik:GridTextBoxColumnEditor ID="GridTextBoxTotalCubes" runat="server" TextBoxStyle-width="40px" /> <telerik:GridTextBoxColumnEditor ID="GridNumericQty" runat="server" TextBoxStyle-width="35px" /> <telerik:RadWindowManager ID="RadWindowManager2" runat="server"></telerik:RadWindowManager> <asp:SqlDataSource ID="SqlDataSourceQuoteItems" runat="server" ConnectionString="Data Source=DWDATA2;Initial Catalog=DWJobInfo;Integrated Security=True" ProviderName="System.Data.SqlClient" SelectCommand="SELECT * FROM [tblMetalCabsQuoteItems] WHERE ([QuoteNo] = @QuoteNo) ORDER BY [Room], [Elevation]" DeleteCommand="DELETE FROM tblMetalCabsItems WHERE id = @id"> <SelectParameters> <asp:ControlParameter ControlID="lblQuoteNo" Name="QuoteNo" PropertyName="Text" Type="String" /> </SelectParameters> <DeleteParameters> <asp:Parameter Name="id" Type="Int16" /> </DeleteParameters> </asp:SqlDataSource>Folks, Using Telerik ASP.NET Ajax 2010 built 3 with VS 2010.
I have a hierachal radgrid. I would like to prevent users with an alert message to expand the Row without selecting the Row 1st.
For example, if Parent row 1 is selected, then if I click to expand Parent row 2 without selecting Parent row 2
-- Although Parent row 1 is still selected, but Parent row 2 expands.
I understand from this for single/expand:
http://www.telerik.com/help/aspnet-ajax/grdsingleexpandinhierarchicalgrid.html
Basically
- Attached file is my desire result (Child Expanded After Parent Row Highlighted.JPG)
- Attached file is NOT my desire result (Child Expanded without Parent Row Highlighted.JPG)
Thanks.
GC_0620
Server Error in '/' Application. -------------------------------------------------------------------------------- Invalid JSON primitive: C. 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.ArgumentException: Invalid JSON primitive: C. 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: [ArgumentException: Invalid JSON primitive: C.] System.Web.Script.Serialization.JavaScriptObjectDeserializer.DeserializePrimitiveObject() +562290 System.Web.Script.Serialization.JavaScriptObjectDeserializer.DeserializeInternal(Int32 depth) +263 System.Web.Script.Serialization.JavaScriptObjectDeserializer.BasicDeserialize(String input, Int32 depthLimit, JavaScriptSerializer serializer) +80 System.Web.Script.Serialization.JavaScriptSerializer.Deserialize(JavaScriptSerializer serializer, String input, Type type, Int32 depthLimit) +44 System.Web.Script.Serialization.JavaScriptSerializer.Deserialize(String input) +74 Telerik.Web.UI.RadUpload.LoadPostData(String postDataKey, NameValueCollection postCollection) +149 Telerik.Web.UI.RadWebControl.System.Web.UI.IPostBackDataHandler.LoadPostData(String postDataKey, NameValueCollection postCollection) +42 System.Web.UI.Page.ProcessPostData(NameValueCollection postData, Boolean fBeforeLoad) +8910120 System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +878 -------------------------------------------------------------------------------- Version Information: Microsoft .NET Framework Version:4.0.30319; ASP.NET Version:4.0.30319.1<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="UploadTesting.aspx.cs" Inherits="Audit.Testing.UploadTesting" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/tr/xhtml11/dtd/xhtml11.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <title></title> </head> <body> <form id="form1" runat="server"> <telerik:RadScriptManager ID="RadScriptManager1" runat="server"> </telerik:RadScriptManager> <telerik:RadCodeBlock ID="RadCodeBlock1" runat="server"> <script type="text/javascript"> function conditionalPostback(sender, eventArgs) { var theRegexp = new RegExp("\.UpdateButton$|\.PerformInsertButton$", "ig"); if (eventArgs.get_eventTarget().match(theRegexp)) { if (upload && upload.getFileInputs()[0].value != "") { alert('ajax off'); eventArgs.EnableAjax = false; } } } var upload = null; function uploadFileSelected(sender, args) { upload = sender; var uploadContainer = sender.get_element(); var editTable = uploadContainer.parentNode.parentNode.parentNode.parentNode; var fileNameTextBox = editTable.rows[0].cells[1].getElementsByTagName('input')[0]; fileNameTextBox.value = args.get_fileInputField().title; } </script> </telerik:RadCodeBlock> <div> <telerik:RadGrid ID="RadGrid1" runat="server" AutoGenerateColumns="False" GridLines="None" OnItemCreated="RadGrid1_ItemCreated" OnNeedDataSource="RadGrid1_NeedDataSource" OnInsertCommand="RadGrid1_InsertCommand"> <MasterTableView CommandItemDisplay="Top" DataKeyNames="Id"> <CommandItemSettings ExportToPdfText="Export to Pdf"></CommandItemSettings> <RowIndicatorColumn> <HeaderStyle Width="20px"></HeaderStyle> </RowIndicatorColumn> <ExpandCollapseColumn> <HeaderStyle Width="20px"></HeaderStyle> </ExpandCollapseColumn> <Columns> <telerik:GridTemplateColumn HeaderText="File" UniqueName="FileUploader"> <EditItemTemplate> <telerik:RadUpload ID="FileUploader" runat="server" ControlObjectsVisibility="RemoveButtons" MaxFileInputsCount="1" MaxFileSize="4000000" > </telerik:RadUpload> </EditItemTemplate> <ItemTemplate> <asp:Label ID="lblFilename" runat="server" Text='<%# Eval("Filename") %>'></asp:Label> </ItemTemplate> </telerik:GridTemplateColumn> </Columns> </MasterTableView> <HeaderContextMenu EnableImageSprites="True" CssClass="GridContextMenu GridContextMenu_Default"> </HeaderContextMenu> </telerik:RadGrid> </div> <telerik:RadAjaxManager runat="server"> </telerik:RadAjaxManager> </form> </body> </html> using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using System.Data; using Telerik.Web.UI; namespace Audit.Testing { public partial class UploadTesting : System.Web.UI.Page { protected DataTable TheData { get { if (Session["TheData"] == null) { DataTable dt = new DataTable(); DataColumn dcFilename = new DataColumn(); dcFilename.ColumnName = "Filename"; dcFilename.DataType = System.Type.GetType("System.String"); dt.Columns.Add(dcFilename); DataColumn dcFiledata = new DataColumn(); dcFiledata.ColumnName = "FileData"; dcFiledata.DataType = typeof(byte[]); dt.Columns.Add(dcFiledata);
DataColumn dcId = new DataColumn();
dcId.ColumnName = "Id";
dcId.DataType = typeof(int);
dt.Columns.Add(dcId);
Session["TheData"] = dt; } return (DataTable)Session["TheData"]; } set { Session["TheData"] = value; } } public string GetApplicationPath() { IMSCommonLibrary.Utilities.Objects.Globals gb = new IMSCommonLibrary.Utilities.Objects.Globals(); return gb.Get_Server_Prefix(); } protected void Page_Load(object sender, EventArgs e) { } protected void RadGrid1_NeedDataSource(object sender, Telerik.Web.UI.GridNeedDataSourceEventArgs e) { RadGrid1.DataSource = TheData; } protected void RadGrid1_ItemCreated(object sender, GridItemEventArgs e) { if (e.Item is GridEditableItem && e.Item.IsInEditMode) { GridEditableItem gei = e.Item as GridEditableItem; ((RadUpload)gei.FindControl("FileUploader")).OnClientFileSelected = "uploadFileSelected"; } } protected void RadGrid1_InsertCommand(object sender, GridCommandEventArgs e) { } } }<telerik:RadScheduler ID="RadSchedulerCalendarEvents" runat="server" Width="100%" Height="500" BorderStyle="None" BorderWidth="0" HoursPanelTimeFormat="h:mm tt" ShowFullTime="true" TimeSlotContextMenuSettings-EnableDefault="true" StartInsertingInAdvancedForm="true" DisplayRecurrenceActionDialogOnMove="true" EnableDatePicker="False" EnableDescriptionField="True" DataSourceID="SqlDataSourceEvents" DataKeyField="evtID" DataStartField="evtStartTime" DataEndField="evtEndTime" DataSubjectField="evtName" DataDescriptionField="evtDescription" DataReminderField="evtReminder" DataRecurrenceField="evtRecurrenceRule" DataRecurrenceParentKeyField="evtRecurrenceParentID" OnAppointmentDelete="RadSchedulerCalendarEvents_AppointmentDelete" OnAppointmentUpdate="RadSchedulerCalendarEvents_AppointmentUpdate" OnAppointmentInsert="RadSchedulerCalendarEvents_AppointmentInsert" OnClientAppointmentInserting="RadSchedulerCalendarEvents_OnClientAppointmentInserting" OnClientAppointmentEditing="RadSchedulerCalendarEvents_OnClientAppointmentEditing" OnClientAppointmentMoveEnd="RadSchedulerCalendarEvents_OnClientAppointmentMoveEnd" OnClientAppointmentResizeEnd="RadSchedulerCalendarEvents_OnClientAppointmentResizeEnd" > <AdvancedForm Modal="true" /> <TimeSlotContextMenus> <telerik:RadSchedulerContextMenu runat="server" ID="SchedulerTimeSlotContextMenu"> <Items> <telerik:RadMenuItem Text="New Event" ImageUrl="/Images/Icons16x16/calendar.png" Postback="false" NavigateUrl="javascript: SwitchToCalendarEventInsertForm(null, null);" /> <%--<telerik:RadMenuItem Text="New Recurring Event" ImageUrl="/Images/Icons16x16/recurring-event.png" NavigateUrl="javascript: alert('upmp');" />--%> <%--<telerik:RadMenuItem IsSeparator="true" />--%> <%--<telerik:RadMenuItem Text="Group by Calendar" Value="EnableGrouping" />--%> <telerik:RadMenuItem IsSeparator="true" /> <telerik:RadMenuItem Text="Go to today" Value="CommandGoToToday" /> </Items> </telerik:RadSchedulerContextMenu> </TimeSlotContextMenus> <AppointmentContextMenuSettings EnableDefault="true" /> <Localization ContextMenuAddAppointment="New Event" ContextMenuAddRecurringAppointment="New Recurring Event" ContextMenuEdit="Edit Event" /></telerik:RadScheduler>