Telerik Forums
UI for ASP.NET AJAX Forum
1 answer
128 views

How to make Slider look like Ruler with small and large ticks?

Thank you.

Danail Vasilev
Telerik team
 answered on 04 Aug 2016
1 answer
63 views

Good afternoon following is for support'm working with a dashboard using Raddock
in the aspx I have the RadDockLayout and within the I have 4 Raddock zone and the dock are created in programming I can now create them but the problem I have is to create a command event to edit that Raddock which by clicking call a radwindow and edit the information but when saving the edited information is not as it should do so that the dock is displayed again with editing changes

currently the dock have a user control
I have no problems to eliminate them or close them I need to edit and I've tried so ask for your help

 

<asp:Content ID="Content1" ContentPlaceHolderID="head" runat="Server">
    <link href="css/common.css" rel="stylesheet" />
    <link href="css/dashboard.css" rel="stylesheet" />
    <%--    <link href="../../Styles/kendo.common.min.css" rel="stylesheet" />
    <%--<link href="../../Styles/kendo.default.min.css" rel="stylesheet" />--%>
    <%-- <link href="../../Styles/kendo.mobile.all.min.css" rel="stylesheet" />
    <link href="../../Styles/kendo.bootstrap.min.css" rel="stylesheet" />--%>
    <%--  <style type="text/css">
        #ctl00_CPH1_verticalMenu div {
            padding: 0 !important;
        }
 
        #ctl00_CPH1_verticalMenu ul {
            border: 30px !important;
            background: rgba(218, 39, 39, 0) !important;
            margin: 0;
            padding: 0;
            width: 200px;
        }
 
        .RadMenu_sfs .rmVertical a.rmLink {
            padding-top: 0px !important;
            padding-bottom: 0px !important;
            padding-left: 0px !important;
        }
 
        .RadMenu_sfs .rmVertical > div {
            border-left: none !important;
        }
 
        .RadMenu_sfs, .RadMenu_sfs a.rmLink {
            color: white !important;
            font-family: "Segoe UI",Arial,Helvetica,sans-serif !important;
            font-weight: 100 !important;
        }
 
        #ctl00_CPH1_verticalMenu .mail:after {
            background: #C0C4C5;
        }
 
        .slider .mail .rmRootLink:before {
            background: #3C4142 !important;
        }
    </style>--%>
 
    <script type="text/javascript" src="Js/dashboard4.js"></script>
    <%-- <script type="text/javascript" src="js.min/dashboard4.js"></script>--%>
    <telerik:RadCodeBlock ID="RadCodeBlock1" runat="server">
        <script type="text/javascript">
            serverIDs({
                ajaxID: "<%= RadAjaxPanel1.ClientID%>",
                ajaxServerID: "<%= RadAjaxPanel1.UniqueID %>",
                windowsId: "<%= newSensorWindows.ClientID%>",
                rcbSensorInventory: "<%= rcbSensorInventory.ClientID%>",
                rcSensorTYpe: "<%= rcSensorType.ClientID %>",
                rcWidgetType: "<%= rcWidgetType.ClientID %>",
                rcRadDockSensor: "<%= rcRadDockSensor.ClientID %>",
                rtbsensorName: "<%= rtbsensorName.ClientID %>",
                RadDockZone2: "<%= RadDockZone2.ClientID %>",
                regKey: "<%= dashregKey.ClientID%>",
                cliKey: "<%= dashcliKey.ClientID%>",
                entitykey: "<%= dashentitykey.ClientID%>",
                cboEntities: "<%=cboEntities.ClientID%>",
                rcRadDockSensor: "<%=rcRadDockSensor.ClientID%>",
                rcTemperatureType: "<%=rcTemperatureType.ClientID%>"
            });
        </script>
    </telerik:RadCodeBlock>
    <%-- <script type="text/javascript" src="../Scripts/kendo.all.min.js"></script>--%>
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="CPH1" runat="Server">
 
    <input type="hidden" clientidmode="Static" id="dashregKey" name="regKey" runat="server" value="" />
    <input type="hidden" clientidmode="Static" id="dashcliKey" name="cliKey" runat="server" value="" />
    <input type="hidden" clientidmode="Static" id="dashentitykey" name="entitykey" runat="server" value="" />
    <input type="hidden" clientidmode="Static" id="dashdockid" name="dashdockid" runat="server" value="" />
    <telerik:RadAjaxLoadingPanel ID="panel1" runat="server" Transparency="30" BackColor="#E0E0E0">
        <asp:Image ID="image2" runat="server" AlternateText="Actualizando Datos..." BorderWidth="0px"
            ImageUrl="images/loading1.gif" />
    </telerik:RadAjaxLoadingPanel>
    <div class="prueba">
        <div class="page">
            <div class="container clear">
                <div class="section bottom">
 
                    <telerik:RadAjaxPanel ID="RadAjaxPanel1" runat="server" LoadingPanelID="panel1"
                        OnAjaxRequest="RadAjaxPanel1_AjaxRequest" Width="100%">
 
                        <div class="scroller">
                            <div class="Panel" style="margin: 0 auto; width: 96.7%;">
                                <div class="home-btn">
                                    <span id="entityList" class="icon icon-Home" onclick="entityList()">
                                        <asp:Label ID="entTitle" runat="server" Text="<%$ Resources:Dashboard4,iotEntitiesList%> " /></span>
 
                                    <telerik:RadComboBox runat="server" DropDownWidth="300px" Text="" OnItemDataBound="cboEntities_ItemDataBound" ID="cboEntities" ClientIDMode="Static" Width="260px" AutoPostBack="false" Filter="Contains" Style="padding: 5px 27%;"
                                        OnSelectedIndexChanged="cboEntities_SelectedIndexChanged" OnClientSelectedIndexChanged="OnClientSelectedIndexChangedEntity" Sort="Ascending" SortCaseSensitive="true" Height="100%" MarkFirstMatch="true" />
 
                                    <span id="addSensor" class="icon icon-Add-Circle spanTag" onclick="addSensorWindow()" style="float: right; padding-right: 30px;">
                                        <asp:Label ID="Label1" runat="server" Text="<%$ Resources:Dashboard4,AddSensor%> " /></span>
 
                                </div>
 
 
 
                            </div>
                            <telerik:RadDockLayout ID="RadDockLayout1" runat="server" OnSaveDockLayout="RadDockLayout1_SaveDockLayout" OnLoadDockLayout="RadDockLayout1_LoadDockLayout">
 
                                <ul id="ctl00_MainContent_rlvContacts_itemPlaceholder" class="contacts-listNew">
 
                                    <li>
                                        <div class="itemTemplateNew">
                                            <div class="content">
                                                <telerik:RadDockZone ID="RadDockZone1" runat="server" CssClass="contacts-list" BorderColor="#F7F7F7" Orientation="Horizontal">
                                                </telerik:RadDockZone>
                                            </div>
 
                                        </div>
                                    </li>
                                </ul>
                                <ul id="Ul1" class="contacts-list">
                                    <li>
                                        <div class="itemTemplate">
                                            <div class="content">
                                                <telerik:RadDockZone ID="RadDockZone2" runat="server" CssClass="contacts-list" BorderColor="white" Orientation="Vertical">
                                                </telerik:RadDockZone>
                                            </div>
                                        </div>
                                    </li>
                                    <li>
                                        <div class="itemTemplate">
                                            <div class="content">
                                                <telerik:RadDockZone ID="RadDockZone3" runat="server" CssClass="contacts-list" BorderColor="white" Orientation="Vertical">
                                                </telerik:RadDockZone>
                                            </div>
                                        </div>
 
                                    </li>
                                    <li>
                                        <div class="itemTemplate">
                                            <div class="content">
                                                <telerik:RadDockZone ID="RadDockZone4" runat="server" CssClass="contacts-list" BorderColor="white" Orientation="Vertical">
                                                </telerik:RadDockZone>
 
                                            </div>
                                        </div>
                                    </li>
 
 
                                </ul>
                            </telerik:RadDockLayout>
                        </div>
                        <telerik:RadWindow runat="server" ID="newSensorWindows" Width="600px" Title="New Sensor " Heigth="380px" MinHeight="370px" VisibleStatusbar="false" ReloadOnShow="true" Behaviors="Close" Style="z-index: 2345" Modal="true">
                            <ContentTemplate>
                                <div style="width: 90%; margin: 0 auto; height: 320px">
                                    <div class="Panel">
                                        <div style="float: left">
                                            <asp:Label ID="sensorTitle" runat="server" Text="<%$ Resources:Dashboard4,AddSensor%>" />
                                        </div>
                                    </div>
 
                                    <div class="PanelContent" style="height: 80%; overflow: auto; padding-top: 10px; padding-left: 100px">
                                        <div class="row" style="margin: 10px;">
                                            <%-- <label><%$ Resources:Dashboard4,sensorName%></label>--%>
                                            <asp:Label ID="lbsensorname" runat="server" Text="<%$ Resources:Dashboard4,sensorName%>" Width="160"></asp:Label>
                                            <telerik:RadTextBox runat="server" ID="rtbsensorName" AutoPostBack="false"></telerik:RadTextBox>
                                            <asp:RequiredFieldValidator runat="server" ID="RequiredFieldValidator1" ControlToValidate="rtbsensorName"
                                                Display="Dynamic" ErrorMessage="!" CssClass="validator">
                                            </asp:RequiredFieldValidator>
                                        </div>
                                        <div class="row" style="margin: 10px;">
                                            <%--<label><%$ Resources:Dashboard4,sensorStock%></label>--%>
                                            <asp:Label ID="Label2" runat="server" Text="<%$ Resources:Dashboard4,sensorStock%>" Width="160"></asp:Label>
                                            <telerik:RadComboBox ID="rcbSensorInventory" Height="200" runat="server" Width="176px" ClientIDMode="Static" AutoPostBack="true" Filter="Contains" MaxHeight="200px"
                                                EmptyMessage="- Select a Sensor -" ZIndex="1000000" OnDataBound="rcbSensorInventory_DataBound" DropDownAutoWidth="Enabled" HighlightTemplatedItems="true" OnClientSelectedIndexChanged="OnClientSelectedIndexChanged">
                                                <HeaderTemplate>
                                                    <table style="width: 300px" cellspacing="0" cellpadding="0">
                                                        <tr>
                                                            <td style="width: 75px;">
                                                                <asp:Label ID="Label2" runat="server" Text="<%$ Resources:Dashboard4,imei%>"></asp:Label>
                                                            </td>
                                                            <td style="width: 100px;">
                                                                <asp:Label ID="Label6" runat="server" Text="<%$ Resources:Dashboard4,brand%>"></asp:Label>
                                                            </td>
                                                            <td style="width: 125px;">
                                                                <asp:Label ID="Label7" runat="server" Text="<%$ Resources:Dashboard4,model%>"></asp:Label>
                                                            </td>
                                                        </tr>
                                                    </table>
                                                </HeaderTemplate>
                                                <ItemTemplate>
                                                    <table style="width: 300px" cellspacing="0" cellpadding="0">
                                                        <tr>
                                                            <td style="width: 75px;">
                                                                <%# DataBinder.Eval(Container, "Text")%>
                                                            </td>
                                                            <td style="width: 100px;">
                                                                <%# DataBinder.Eval(Container, "Attributes['Marca']")%>
                                                            </td>
                                                            <td style="width: 125px;">
                                                                <%# DataBinder.Eval(Container, "Attributes['Modelo']")%>
                                                            </td>
                                                        </tr>
                                                    </table>
                                                </ItemTemplate>
                                            </telerik:RadComboBox>
                                            <asp:RequiredFieldValidator runat="server" ID="RequiredFieldValidator5" ControlToValidate="rcbSensorInventory"
                                                Display="Dynamic" ErrorMessage="!" CssClass="validator">
                                            </asp:RequiredFieldValidator>
                                        </div>
                                        <div class="row" style="margin: 10px;">
                                            <%--<label><%$ Resources:Dashboard4,sensorType%></label>--%>
                                            <asp:Label ID="Label3" runat="server" Text="<%$ Resources:Dashboard4,sensorType%>" Width="160"></asp:Label>
                                            <telerik:RadComboBox ID="rcSensorType" runat="server" Width="176px" ClientIDMode="Static" AutoPostBack="false" OnClientSelectedIndexChanged="checkifisTemperature"
                                                EmptyMessage="- Select a Sensor Type -" ZIndex="1000000">
                                            </telerik:RadComboBox>
                                            <asp:RequiredFieldValidator runat="server" ID="RequiredFieldValidator2" ControlToValidate="rcSensorType"
                                                Display="Dynamic" ErrorMessage="!" CssClass="validator">
                                            </asp:RequiredFieldValidator>
                                        </div>
                                        <div id="tempDiv" class="row" style="margin: 10px;">
                                            <%--<label><%$ Resources:Dashboard4,sensorType%></label>--%>
                                            <asp:Label ID="Label8" runat="server" Text="<%$ Resources:Dashboard4,temperatureUnit%>" Width="160"></asp:Label>
                                            <telerik:RadComboBox ID="rcTemperatureType" runat="server" Width="176px" ClientIDMode="Static" AutoPostBack="false"
                                                EmptyMessage="- Select a Temperature Type -" ZIndex="1000000">
                                            </telerik:RadComboBox>
                                            <%--<asp:RequiredFieldValidator runat="server" ID="RequiredFieldValidator6" ControlToValidate="rcTemperatureType"
                                                Display="Dynamic" ErrorMessage="!" CssClass="validator">
                                            </asp:RequiredFieldValidator>--%>
                                        </div>
                                        <div class="row" style="margin: 10px;">
                                            <%--<label style="margin-right: 37px;"><%$ Resources:Dashboard4,widgetType%></label>--%>
                                            <asp:Label ID="Label4" runat="server" Text="<%$ Resources:Dashboard4,widgetType%>" Width="160"></asp:Label>
                                            <telerik:RadComboBox ID="rcWidgetType" runat="server" Width="176px" ClientIDMode="Static" AutoPostBack="false"
                                                EmptyMessage="- Select a Widget Type -" ZIndex="10001">
                                            </telerik:RadComboBox>
                                            <asp:RequiredFieldValidator runat="server" ID="RequiredFieldValidator3" ControlToValidate="rcWidgetType"
                                                Display="Dynamic" ErrorMessage="!" CssClass="validator">
                                            </asp:RequiredFieldValidator>
                                        </div>
                                        <div id="locationID" class="row" style="margin: 10px;">
                                            <%--<label style="margin-right: 20px;"><%$ Resources:Dashboard4,widgetLocation%></label>--%>
                                            <asp:Label ID="Label5" runat="server" Text="<%$ Resources:Dashboard4,widgetLocation%>" Width="160"></asp:Label>
                                            <telerik:RadComboBox ID="rcRadDockSensor" runat="server" Width="176px" ClientIDMode="Static" AutoPostBack="false"
                                                EmptyMessage="- Select Dock Location -" ZIndex="1000000">
                                            </telerik:RadComboBox>
                                            <asp:RequiredFieldValidator runat="server" ID="RequiredFieldValidator4" ControlToValidate="rcRadDockSensor"
                                                Display="Dynamic" ErrorMessage="!" CssClass="validator">
                                            </asp:RequiredFieldValidator>
                                        </div>
 
                                        <div id="saveDiv" style="text-align: center; padding-top: 7px">
 
                                            <telerik:RadButton ID="SaveData" runat="server" AutoPostBack="false" Text="<%$ Resources:language,save %>" OnClientClicked="addDock">
                                                <Icon PrimaryIconCssClass="rbEdit" PrimaryIconLeft="4px" PrimaryIconTop="4px" />
                                            </telerik:RadButton>
                                        </div>
                                        <div id="editDiv" style="text-align: center; padding-top: 7px">
 
                                            <telerik:RadButton ID="RadButton1" runat="server" AutoPostBack="false" Text="<%$ Resources:language,Edit %>" OnClientClicked="editDock">
                                                <Icon PrimaryIconCssClass="rbEdit" PrimaryIconLeft="4px" PrimaryIconTop="4px" />
                                            </telerik:RadButton>
                                        </div>
                                        <telerik:RadNotification ID="RadNotification1" runat="server" Position="Center"
                                            Width="250px" EnableRoundedCorners="true" VisibleTitlebar="True" TitleIcon="none" ContentIcon="none" CssClass="boxcontainer" Title="Mensaje" AnimationDuration="0" AutoCloseDelay="0">
                                        </telerik:RadNotification>
                            </ContentTemplate>
                        </telerik:RadWindow>
                    </telerik:RadAjaxPanel>
                </div>
            </div>
        </div>
    </div>
    <div class="tm-click-overlay"></div>
 
    <asp:HiddenField runat="server" ID="nav" />
 
</asp:Content>

 

 

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web.UI;
using System.Web.UI.WebControls;
using Telerik.Web.UI;
using sFleet.General;
using sfleet.Api;
using sfleet.General;
using sfleet.dashboardModels;
 
public partial class app_DashBoard : app_Page
{
    enum WidgetType { ImageDock, BarWidget, GaugeChart, RadarChart, Weather, Gauge, AreaChart, KendoAreaChart };
    string[] PrimaryDockZone = new string[] { "RadDockZone1" };
    string[] SensorDockZone = new string[] { "RadDockZone2", "RadDockZone3", "RadDockZone4" };
    private int regkey = 0, clikey = 0, entkey = 0;
 
 
 
    private void LoadWidget(RadDock dock)
    {
        if (string.IsNullOrEmpty(dock.Tag))
            return;
        Control widget = LoadControl(dock.Tag);
        dock.ContentContainer.Controls.Add(widget);
    }
 
    public void loadVariable()
    {
        //if (regkey != 0)
        regkey = Convert.ToInt32(Session["RegionKey"]);
        // if (clikey != 0)
        clikey = Convert.ToInt32(Session["ClientKey"]);
        entkey = Convert.ToInt32(Session["EntityKey"]);
 
        //Session["EntityKey"] = entkey;
        this.dashregKey.Value = regkey.ToString();
        this.dashcliKey.Value = clikey.ToString();
        this.dashentitykey.Value = entkey.ToString();
    }
 
   
    protected void Page_Init(object sender, EventArgs e)
    {
        //loadEntitiesList();
         
          loadVariable();
 
        if (entkey == 0)
        {
            Response.Redirect("iotEntities.Aspx");
        }
        //Recreate the docks in order to ensure their proper operation
        for (int i = 0; i < CurrentDockStates.Count; i++)
        {
            if (CurrentDockStates[i].Closed == true) continue;
            RadDock dock = CreateRadDockFromState(CurrentDockStates[i]);
 
            //We will just add the RadDock control to the RadDockLayout.
            // You could use any other control for that purpose, just ensure
            // that it is inside the RadDockLayout control.
            // The RadDockLayout control will automatically move the RadDock
            // controls to their corresponding zone in the LoadDockLayout
            // event (see below).
            RadDockLayout1.Controls.Add(dock);
            //We want to save the dock state every time a dock is moved.
            CreateSaveStateTrigger(dock);
            LoadWidget(dock);
 
            // prevents the rendering of closed docks, used for improving
            // performance
            if (CurrentDockStates[i].Closed == true)
            {
                dock.Visible = false;
            }
        }
 
 
    }
 
    protected override void Page_Load(object sender, EventArgs e)
    {
        base.Page_Load(sender, e);
        //string title = this.Page.Title;
        this.Page.Title = "";
        nav.Value = "desktop";
        if (!Page.IsPostBack && !Page.IsCallback)
        {
            //if (this.RadDockZone1.Docks.Count < 2)
            //{
            //    CreateDockforGatewayZone();
            //}
            loadSensorInventory();
            loadEntitiesList();
            loadWidgetType();
            loadRadDockZoneSensor();
            loadTemperatureType();
        }
 
 
 
    }
 
    private RadDock CreateRadDockFromState(DockState state)
    {
        RadDock dock = new RadDock();
        dock.DockMode = DockMode.Docked;
        dock.ID = string.Format("RadDock{0}", state.UniqueName);
        dock.Title = state.Title;
        dock.CssClass = "higherZIndex new";
        dock.EnableRoundedCorners = true;
        dock.BackColor = System.Drawing.Color.White;
        dock.BorderColor = System.Drawing.Color.LightGray;
        dock.ForbiddenZones = getZone(state);
        dock.RenderMode = RenderMode.Lightweight;//RenderMode.Lightweight;
        dock.CommandsAutoPostBack = true;
        dock.ApplyState(state);
        var close = new DockCloseCommand();
        close.CssClass = "CloseCustom";
        close.AutoPostBack = true;
        dock.Commands.Add(close);
        dock.Command += new DockCommandEventHandler(dock_Command);
        //dock.Commands.Add(new DockCloseCommand());
        //dock.Commands.Add(new DockExpandCollapseCommand());
        var editCommand = new DockCommand();
        
        editCommand.Name = "Edit";
        editCommand.CssClass = "EditCustom";
        editCommand.OnClientCommand = "EditWidget";
        editCommand.AutoPostBack = false;
        dock.Commands.Add(editCommand);
        return dock;
 
    }
 
 
    private void CreateSaveStateTrigger(RadDock dock)
    {
        //Ensure that the RadDock control will initiate postback
        // when its position changes on the client or any of the commands is clicked.
        //Using the trigger we will "ajaxify" that postback.
        dock.AutoPostBack = true;
        dock.CommandsAutoPostBack = false;
         
    }
 
    void dock_Command(object sender, DockCommandEventArgs e)
    {
        if (e.Command.Name == "Close")
        {
            //Delete Sensor
            var dockid = ((Telerik.Web.UI.RadDock)(sender)).UniqueName;
            var iot = new sfDataAccess();
            iot.DeleteRadDockSensor(regkey, clikey, entkey, dockid);
            //Delete Dock
            sender.ToString();
            //var current = CurrentDockStates;
            rcbSensorInventory.Items.Clear();
            loadSensorInventory();
        }
         
         
 
    }
 
    //private void LoadMobile(DeviceScreenDimensions screenDimensions)
    //{
 
    //}
 
    private void CreateDockforGatewayZone()
    {
 
        WidgetType[] values = (WidgetType[])Enum.GetValues(typeof(WidgetType));
 
        int PrimaryDock = 3 - this.RadDockZone1.Docks.Count;
 
        for (int i = 0; i < PrimaryDock; i++)
        {
            //WidgetType widget = ParseEnum<WidgetType>(widType[i]);
            //RadDock dock = CreateRadDock(widget, ForbZone);
 
            RadDock dock = CreateRadDock(values[i], SensorDockZone, "Widget "+i, 32, 350);
            RadDockLayout1.Controls.Add(dock);
            dock.Dock(RadDockZone1);
            CreateSaveStateTrigger(dock);
        }
 
    }
 
    private RadDock CreateRadDock(WidgetType widget, string[] zone, string Title, int dockWidth, int dockHeight)
    {
        RadDock dock = new RadDock();
        dock.DockMode = DockMode.Docked;
        dock.UniqueName = Guid.NewGuid().ToString().Replace("-", "a");
        dock.ID = string.Format("RadDock{0}", dock.UniqueName);
        dock.Title = Title;
        dock.Text = string.Format("Add to {0}", DateTime.Now);
        dock.RenderMode = RenderMode.Native;//RenderMode.Lightweight;
        dock.ForbiddenZones = zone;
        //dock.Style = "margin-left: 100px;";
        dock.BorderColor = System.Drawing.Color.LightGray;
        dock.BackColor = System.Drawing.Color.White;
        dock.CommandsAutoPostBack = false;
        dock.CssClass = "higherZIndex new";
        //if (dockHeight == 300)
        //{
        dock.Width = Unit.Percentage(dockWidth);
        //dock.Height = Unit.Percentage(dockHeight);
        //}
        //else
        //{
        //    dock.Width = Unit.Pixel(dockWidth);
            dock.Height = Unit.Pixel(dockHeight);
        //}
         
        dock.DockHandle = DockHandle.TitleBar;
        dock.Tag = getTag(widget);
        dock.EnableRoundedCorners = true;
         
        LoadWidget(dock);
        var close = new DockCloseCommand();
        close.AutoPostBack = true;
        close.CssClass = "CloseCustom";
        dock.Commands.Add(close);
        dock.Command += new DockCommandEventHandler(dock_Command);
         
        var editCommand = new DockCommand();
        editCommand.Name = "Edit";
        editCommand.CssClass = "EditCustom";
        editCommand.OnClientCommand = "EditWidget";
        editCommand.AutoPostBack = false;
        dock.Commands.Add(editCommand);
 
        return dock;
    }
 
    protected void RadAjaxPanel1_AjaxRequest(object sender, AjaxRequestEventArgs e)
    {
        if (e.Argument == "AddDock")
        {
            
 
            try
            {
                //RadAjaxPanel1.ResponseScripts.Add("../Scripts/kendo.all.min.js");
                var sensor = new sfsSensor();
                sensor.SensorName = this.rtbsensorName.Text;
                sensor.regionKey = regkey;
                sensor.clientKey = clikey;
                sensor.entityKey = entkey;
                sensor.sensorTypeKey = Convert.ToInt32(this.rcSensorType.SelectedValue);
                sensor.sensorInv_Key = Convert.ToInt32(this.rcbSensorInventory.SelectedValue);
                int width, heigth;
                width = 40;
                heigth = 345;
                if (sensor.sensorTypeKey == 7)
                {
                    sensor.temperatureType = Convert.ToChar(rcTemperatureType.SelectedValue);
                }
 
                RadDock dock = CreateRadDock(WidgetType.BarWidget, PrimaryDockZone, sensor.SensorName, width, heigth);
 
                sensor.sensorDockId = dock.UniqueName;
 
                var iot = new sfDataAccess();
                iot.saveIotSensor(sensor);
                RadDockLayout1.Controls.Add(dock);
                var radzone = Page.Master.FindControl("CPH1").FindControl(this.rcRadDockSensor.SelectedValue) as RadDockZone;
                dock.Dock(radzone);
                CreateSaveStateTrigger(dock);
                dock.Closed = false;
 
                //RadAjaxPanel1.ResponseScripts.Add("../Scripts/kendo.all.min.js");
 
                rcbSensorInventory.Items.Clear();
                loadSensorInventory();
 
                RadNotification1.Text = "Sensor Agregado Correctamente";
                RadNotification1.Show();
 
                //ClientScript.RegisterStartupScript(GetType(), "hwa", "alert('Hello World');", true);setTimeout(updateSensor, sfs.timer, sfs.sensorKey);
                //RadAjaxPanel1.ResponseScripts.Add("setTimeout(updateSensor, "+60000+", "+sensor.sensorKey+");");
            }
            catch (Exception ex)
            {
                var iot = new sfGenerall();
                iot.InsertErrorLog(ex);
                RadNotification1.Text = ex.ToString();
                RadNotification1.Show();
                 
            }
           
             
        }
 
        if (e.Argument == "EditDock")
        {
            try
            {
                var sensor = new sfsSensor();
                sensor.SensorName = this.rtbsensorName.Text;
                sensor.regionKey = regkey;
                sensor.clientKey = clikey;
                sensor.entityKey = entkey;
                sensor.sensorTypeKey = Convert.ToInt32(this.rcSensorType.SelectedValue);
                sensor.sensorInv_Key = Convert.ToInt32(this.rcbSensorInventory.SelectedValue);
 
                if (sensor.sensorTypeKey == 7)
                {
                    sensor.temperatureType = Convert.ToChar(rcTemperatureType.SelectedValue);
                }
                else
                {
                    sensor.temperatureType = 'C';
                }
 
                var iot = new sfDataAccess();
                iot.updateIotSensor(sensor);
                string dockid = dashdockid.Value;
                //var raddock = iot.LoadRadDockState(sensor.regionKey, sensor.clientKey, sensor.entityKey);
 
                //foreach (var oneDock in CurrentDockStates)
                //{
                //    RadDock dock = CreateRadDockFromState(oneDock);
                //    if (oneDock.UniqueName == dockid)
                //    {
                //        dock.Title = sensor.SensorName;
                //        dock.Tag = getTag(WidgetType.BarWidget);
                         
                //    }
                //    RadDockLayout1.Controls.Add(dock);
                //    //We want to save the dock state every time a dock is moved.
                //    CreateSaveStateTrigger(dock);
                //    LoadWidget(dock);
                //}
 
                foreach (var item in RadDockLayout1.Controls)
                {
                    var x = item;
                }
                 
                for (int i = 0; i < CurrentDockStates.Count; i++)
                {
                    if (CurrentDockStates[i].Closed == true) continue;
                    RadDock dock = CreateRadDockFromState(CurrentDockStates[i]);
                    var resp1 = RadDockZone1.Docks.Contains(dock);
                    var resp2 = RadDockZone2.Docks.Contains(dock);
                    var resp3 = RadDockZone3.Docks.Contains(dock);
                    if (dock.UniqueName == dockid)
                    {
                        RadDockLayout1.Controls.RemoveAt(i);
                        dock.Title = sensor.SensorName;
                        dock.Tag = getTag(WidgetType.BarWidget);
                    }
                    //We will just add the RadDock control to the RadDockLayout.
                    // You could use any other control for that purpose, just ensure
                    // that it is inside the RadDockLayout control.
                    // The RadDockLayout control will automatically move the RadDock
                    // controls to their corresponding zone in the LoadDockLayout
                    // event (see below).
                    //RadDockLayout1.Controls.Add(dock);
                    //We want to save the dock state every time a dock is moved.
                    //CreateSaveStateTrigger(dock);
                    //LoadWidget(dock);
 
                    // prevents the rendering of closed docks, used for improving
                    // performance
                    if (CurrentDockStates[i].Closed == true)
                    {
                        dock.Visible = false;
                    }
                }
                CurrentDockStates =RadDockLayout1.GetRegisteredDocksState();
                 
 
            }
            catch (Exception ex)
            {
                var iot = new sfGenerall();
                iot.InsertErrorLog(ex);
                RadNotification1.Text = ex.ToString();
                RadNotification1.Show();
 
            }
 
        }
 
        
 
    }
 
    protected void RadDock1_Command(object sender, Telerik.Web.UI.DockCommandEventArgs e)
    {
        if (e.Command.Name == "Close")
        {
 
        }
 
    }
 
    #region raddockState
    protected void RadDockLayout1_LoadDockLayout(object sender, DockLayoutEventArgs e)
    {
 
        //Populate the event args with the state information. The RadDockLayout control
        // will automatically move the docks according that information.
        foreach (DockState state in CurrentDockStates)
        {
 
            e.Positions[state.UniqueName] = state.DockZoneID;
            e.Indices[state.UniqueName] = state.Index;
        }
 
 
    }
 
    protected void RadDockLayout1_SaveDockLayout(object sender, DockLayoutEventArgs e)
    {
        //Save the dock state in the page Session. This will enable us
        // to recreate the dock in the next Page_Init.
 
        CurrentDockStates = RadDockLayout1.GetRegisteredDocksState();
 
    }
 
 
 
    #endregion
 
    #region raddockState
 
    private List<DockState> CurrentDockStates
    {
        get
        {
            var iot = new sfDataAccess();
            List<DockState> _currentDockSates = iot.LoadRadDockState(regkey, clikey, entkey);
            //List<DockState> _currentDockSates = (List<DockState>)Session["CurrentDockStatesDynamicDock"];
            if (Object.Equals(_currentDockSates, null))
            {
                _currentDockSates = new List<DockState>();
            }
            return _currentDockSates;
        }
        set
        {
            var iot = new sfDataAccess();
            iot.SaveRadDockState(value, regkey, clikey, entkey);
            //Session["CurrentDockStatesDynamicDock"] = value;
        }
    }
 
    #endregion
 
    public void loadSensorInventory()
    {
        List<sfsSensorInventary> inventorySensor = new List<sfsSensorInventary>();
        var iot = new sfDataAccess();
        var sensor = new sfsSensorInventary();
        sensor.regkey = regkey;
        sensor.clientKey = clikey;
        sensor.entityKey = entkey;
        inventorySensor = iot.getSensorInventoryforDashboard(sensor);
 
 
        foreach (var x in inventorySensor)
        {
            //rcbSensorInventory.Items.Add(new RadComboBoxItem(x.sensorkey.ToString(), x.sensorsenrie));
            RadComboBoxItem item = new RadComboBoxItem();
 
            item.Text = x.sensorserie;
            item.Value = x.sensorkey.ToString();
 
            item.Attributes.Add("Marca", x.brandName.ToString());
            item.Attributes.Add("Modelo", x.modelName.ToString());
 
            if (x.checheck == x.sensorCount)
            {
                item.ForeColor = System.Drawing.Color.Red;
            }
            //else
            //{
            //    item.BackColor = ;
            //}
            //item.Value += ":" + unitPrice;
 
            rcbSensorInventory.Items.Add(item);
 
            item.DataBind();
        }
 
    }
 
    public void loadEntitiesList()
    {
        //if(regkey==0)
        //regkey =  Convert.ToInt32((object)Session["RegionKey"]);
 
        //if(clikey==0)
        //clikey = Convert.ToInt32((object)Session["ClientKey"]);
 
        var iot = new sfDataAccess();
        var entitiesList = iot.getEntityDataByUser(regkey, clikey);
 
        foreach (var entities in entitiesList)
        {
            if (entities.SensorCount > 0)
            {
                RadComboBoxItem item = new RadComboBoxItem();
                item.Value = entities.IdEntity.ToString();
                item.Text = entities.Name;
                //+ "("+entities.IdEntity.ToString()+") "
                cboEntities.Items.Add(item);
                if (item.Value == entkey.ToString())
                    item.Selected = true;
 
                item.DataBind();
            }
        }
 
        cboEntities.SelectedIndex = entkey - 1;
 
        //entTitle.Text = cboEntities.SelectedItem.Text;
    }
 
 
    public void loadSensorType()
    {
        List<sfsSensorType> sensorType = new List<sfsSensorType>();
        sfsDashController sfs = new sfsDashController();
        sensorType = sfs.loadddpSensorType();
        //DropDownListItem item = new DropDownListItem();
        foreach (var x in sensorType)
        {
            rcSensorType.Items.Add(new RadComboBoxItem(x.sensorName, x.sensorTypeId.ToString()));
 
        }
        //RadDropDownSensorType.DataSource = sensorType;
        //RadDropDownSensorType.DataBind();
 
    }
 
    public void loadTemperatureType()
    {
        rcTemperatureType.Items.Add(new RadComboBoxItem("Celsius","C"));
        rcTemperatureType.Items.Add(new RadComboBoxItem("Fahrenheit", "F"));
    }
 
    public void loadWidgetType()
    {
        rcWidgetType.Items.Add(new RadComboBoxItem(WidgetType.BarWidget.ToString(), WidgetType.BarWidget.GetType().ToString()));
        //rcWidgetType.Items.Add(new RadComboBoxItem(WidgetType.KendoAreaChart.ToString(), WidgetType.KendoAreaChart.GetType().ToString()));
    }
 
    public void loadRadDockZoneSensor()
    {
            //culture = new System.Globalization.CultureInfo(Session["USER_LANGUAGE"].ToString());
        int langNumber = 0;
        var lang = Session["USER_LANGUAGE"].ToString();
        if (lang.Substring(0, 2) == "en")
        {
            langNumber = 1;
        }
        //var  radDockName = new String[3]  {"Izquierda","Centro","Derecha"};
        var radDockName = new String[2, 3] { { "Izquierda", "Centro", "Derecha" }, { "Left", "Center", "Right" } };
         
        int zoneCount = 0;
        foreach (string x in SensorDockZone)
        {
            rcRadDockSensor.Items.Add(new RadComboBoxItem(radDockName[langNumber,zoneCount], x.ToString()));
            zoneCount++;
        }
    }
 
    private string getTag(WidgetType value)
    {
        string widgetName;
        switch (value)
        {
            case WidgetType.GaugeChart:
                widgetName = "~/app/Widget/GaugeChart.ascx";
                break;
            case WidgetType.Gauge:
                widgetName = "~/app/Widget/WeatherControl.ascx";
                break;
            case WidgetType.RadarChart:
                widgetName = "~/app/Widget/RadarChart.ascx";
                break;
            case WidgetType.AreaChart:
                widgetName = "~/app/Widget/AreaChart.ascx";
                break;
            case WidgetType.ImageDock:
                widgetName = "~/app/Widget/ImgWidget.ascx";
                break;
            case WidgetType.BarWidget:
                widgetName = "~/app/Widget/BarWidget.ascx";
                break;
            case WidgetType.KendoAreaChart:
                widgetName = "~/app/Widget/KendoAreaChart.ascx";
                break;
            default:
                widgetName = "~/app/Widget/WeatherControl.ascx";
                break;
        }
 
        return widgetName;
 
    }
 
    public string[] getZone(DockState state)
    {
        if (!String.IsNullOrEmpty(state.DockZoneID))
        {
            if (state.DockZoneID.Substring(11, 12) == "RadDockZone1")
            {
                return SensorDockZone;
            }
            else
            {
 
                return PrimaryDockZone;
            }
        }
        else
        {
            return null;
        }
    }
 
 
    
   
 
    
}

Danail Vasilev
Telerik team
 answered on 04 Aug 2016
1 answer
72 views
How disable click in date column in Agenda View (attached image)?
And can I add custome style/template in the date column in Agenda View?
Ivan Danchev
Telerik team
 answered on 03 Aug 2016
1 answer
597 views

Hello everybody,

I had followed Morten´s suggestion to solve Case Sensitiveness at post "RadGrid Filter Case Sensitive?" by adding <GroupingSettings CaseSensitive="false" /> to my RadGrig.

<telerik:RadGrid ID="rg" runat="server" AllowFilteringByColumn="True" AllowFiltering="True">
  <GroupingSettings CaseSensitive="false" />

It partially works at my scenario. I use DataSourceID and let´s say I have 20 records at my datasource, I am filtering with the EmployeeName column. 

If I write "ce" the filter works fine and it retrieves just one record "Bruce Wayne" (see filter_ce.jpg) BUT
If I write "ca" the filter doesn´t work and it retrieves all records at the DataSource (see filter_ca.jpg).

In both cases I am using Contains to apply the filter.

Any ideas about what is going on?? how can I correct this behavior??
If you need me to provide more info just let me know.

Thnx in advance

Viktor Tachev
Telerik team
 answered on 03 Aug 2016
20 answers
3.3K+ views
Hey how do I make the filter on a RadGrid so that it isn't case sensitive?  Why would you have this enabled by default?  Who would want a case sensitve filter anyway?
Viktor Tachev
Telerik team
 answered on 03 Aug 2016
4 answers
187 views

I have the following code to programmatically create a DatePicker

case "date":
    var dt = new RadDatePicker { ID = $"keyword_{keyword.keyword_id}" };
    var day = new RadCalendarDay
    {
      Repeatable = RecurringEvents.Today,
      Date = DateTime.Today
    };
    day.ItemStyle.BackColor = Color.LightGray;
    day.ItemStyle.Font.Bold = true;
    day.ItemStyle.BorderStyle = BorderStyle.Solid;
    day.ItemStyle.BorderColor = Color.Black;
    day.ItemStyle.BorderWidth = new Unit(1);
    if (dt.SharedCalendar == null)
    {
      dt.SharedCalendar = new RadCalendar();
    }
    dt.SharedCalendar.SpecialDays.Add(day);
    cell1.Controls.Add(lbl);
    cell2.Controls.Add(dt);
    break;

and I receive the following on the page when I try to view it:

Value cannot be null or empty.
Parameter name: componentID

I've got it narrowed down to the SharedCalendar not having an ID value, and when I set it to some value, I now get an error in the JS console:

Uncaught Sys.InvalidOperationException: Sys.InavalidOperationException: Compnoent 'cal_keyword_134' was not found

How can I create a Date Picker programmatically and have the popup calendar highlight "today"?

 

Mike
Top achievements
Rank 1
 answered on 03 Aug 2016
1 answer
371 views

After a few hours of searching the internet on the error "Specified argument was out of the range of valid values", I discovered that the cause was the GridTemplateColumn behaving differently that a GridBoundColumn with regards to filtering. In the code snippet below, you can use the one filter just fine. If you change the telerik:GridTemplateColumn (column 2) to AllowFiltering='true' while having a <FilterTemplate> element, using the filter on column 3 will throw an error. AllowFiltering='true' doesn't cause a problem if there's no <FilterTemplate> element. Note that changing the GridBoundColumn ( column 1) between AllowFiltering= true/false doesn't cause an issue. It's only the GridTemplateColumn type.

The different behavior between the GridBoundColumn and GridTemplateColumn types seems like a bug.

 

      <telerik:RadGrid runat="server" DataSourceID="sql_tables" AllowFilteringByColumn="true" AutoGenerateColumns="false">
            <MasterTableView>
                <Columns>
                    <telerik:GridBoundColumn DataField="name" HeaderText="name" AllowFiltering="true" UniqueName="name1">
                        <FilterTemplate>
                            custom filter template on GridBoundColumn is OK
                        </FilterTemplate>
                    </telerik:GridBoundColumn>
 
                    <telerik:GridTemplateColumn DataField="name" HeaderText="name-template" AllowFiltering="false" UniqueName="name2">
                        <ItemTemplate>
                            <%#Eval("name") %>
                        </ItemTemplate>
                        <FilterTemplate>custom filter on GridTemplateColumn breaks filtering.</FilterTemplate>
                        <HeaderStyle BackColor="Pink" />
                    </telerik:GridTemplateColumn>
 
<telerik:GridBoundColumn DataField="type" HeaderText="type" AllowFiltering="true" UniqueName="type"/>
                </Columns>
            </MasterTableView>
        </telerik:RadGrid>
 
        <asp:SqlDataSource runat="server" ID="sql_tables" ConnectionString="<%$ ConnectionStrings:MyDB%>" SelectCommand="select top 4 name, object_id, schema_id, type, type_desc from sys.tables" />

Maria Ilieva
Telerik team
 answered on 03 Aug 2016
1 answer
71 views

Hi,

 

ich have a Grid with Enabled HeaderContextMenu. Is it possible to open the Contextmenu with Keyboard for selected item and also Navigate inside the Contextmenu with Keyboard?

 

Kind Regards

Maria Ilieva
Telerik team
 answered on 03 Aug 2016
3 answers
126 views

Hi,

How can i control the width of the resource in the advanced form view. Because of the data i am loading it does not expand and the text is long.

 

<telerik:ResourceType DataSourceID="Patients" Name="Patient" TextField="PatientName" KeyField="PatientId" 
                    ForeignKeyField="AppPatientId"/>

 

Thanks

Ivan Danchev
Telerik team
 answered on 03 Aug 2016
0 answers
183 views

The official support for RadUpload has been discontinued in June 2013 (Q2’13) in favor of RadAsyncUpload, Telerik’s next-generation ASP.NET upload control. If you are considering Telerik’s Upload control for new development, check out the RadAsyncUpload documentation or its product page.

If you are already using RadUpload in your projects, you may be interested in reading how easy the transition to RadAsyncUpload is and how you can benefit from it in this blog post.

Although RadUpload is still available in the suite, we deeply believe that RadAsyncUpload can better serve your upload needs and we kindly ask you to transition to it to make sure you take advantage of its support and the new features we constantly add to it.

Telerik Admin
Top achievements
Rank 1
Iron
 asked on 03 Aug 2016
Narrow your results
Selected tags
Tags
+? more
Top users last month
Will
Top achievements
Rank 2
Iron
Motti
Top achievements
Rank 1
Iron
Hester
Top achievements
Rank 1
Iron
Bob
Top achievements
Rank 3
Iron
Iron
Veteran
Thomas
Top achievements
Rank 2
Iron
Want to show your ninja superpower to fellow developers?
Top users last month
Will
Top achievements
Rank 2
Iron
Motti
Top achievements
Rank 1
Iron
Hester
Top achievements
Rank 1
Iron
Bob
Top achievements
Rank 3
Iron
Iron
Veteran
Thomas
Top achievements
Rank 2
Iron
Want to show your ninja superpower to fellow developers?
Want to show your ninja superpower to fellow developers?