I am using the scheduler binding to local data from my viewmodel. The scheduler is set to TimeZone of "Etc/UTC" and all the dates are stored as UTC however they are all adjusted in the scheduler. How can I turn off scheduler timezone adjustments. There should be nothing to adjust to since everything is UTC!
Honestly, I keep running into problem after problem with these products and I think that $2,000 was a big mistake.
The problem is I'm not able to pass the date selected by user from Kendo Date time picker in View to Controller using ajax call. Any help or input would be much appreciated. When I put the debugger, I found that control is just passing over it but not hitting the Action method in the Home controller.
View
===================================================================================================================
<div class="chart-wrapper">
@(Html.Kendo().Chart()
.Name("chart")
.Title("Power Output")
.Legend(legend => legend
.Position(ChartLegendPosition.Bottom)
)
.ChartArea(chartArea => chartArea
.Background("transparent")
)
.SeriesDefaults(seriesDefaults =>
seriesDefaults.Area().Line(line => line.Style(ChartAreaStyle.Smooth))
)
.Series(series =>
{
series.Area(ViewBag.Value).Name("Power");
})
.CategoryAxis(axis => axis
.Date()
.Categories(ViewBag.TimeStamp)
)
.ValueAxis(axis => axis
.Numeric()
.Labels(labels => labels.Format("{0}"))
.AxisCrossingValue(-10)
.Line(line => line.Visible(false))
)
.Tooltip(tooltip => tooltip
.Visible(true)
.Format("{0}%")
.Template("#= series.name #: #= value #")
)
)
</div>
<div>
<h4>Select Date</h4>
<input id="datepicker"/>
<script>
$(document).ready(function() {
function onChange() {
debugger;
var date = kendo.toString(this.value());
$.post('/Home/Index', { "date": date }, function () {
alert("data is posted successfully");
window.location.reload(true);
});
//this.close();
}
$("#datepicker").kendoDatePicker({
open: onChange,
value: new Date()
});
})
</script>
</div>
=========================================================================================================================
Controller
=========================================================================================================================
using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Net;
using System.Web;
using System.Web.Mvc;
using SparklineChart.Models;
using System.Net.Security;
using System.Security.Cryptography.X509Certificates;
using Newtonsoft.Json.Linq;
namespace SparklineChart.Controllers
{
public class HomeController : Controller
{
private static Class1[] _download_serialized_json_data<ActualPower>(string url) where ActualPower : new()
{
//This is to temporarily to disable the SSL Certificate check.
ServicePointManager.ServerCertificateValidationCallback = delegate (object s, X509Certificate certificate, X509Chain chain, SslPolicyErrors sslPolicyErrors)
{ return true; };
using (var w = new WebClient())
{
var json_data = string.Empty;
try
{
json_data = w.DownloadString(url);
}
catch (Exception ) { }
return !string.IsNullOrEmpty(json_data) ? JsonConvert.DeserializeObject<Class1[]>(json_data) : new Class1[] { };
}
}
[HttpGet]
public ActionResult Index()
{
var url = "https://raise.tra.trafficmanager.net/apiv1/abb/raise/rest/measured/9fcecb42-7dfc-407e-bf31-a447f0650447/Actual%20Power";
var actualPower = _download_serialized_json_data<ActualPower>(url);
Dictionary<DateTime, decimal> power = new Dictionary<DateTime, decimal>();
List<decimal> value = new List<decimal>();
List<DateTime> timeStamp = new List<DateTime>();
foreach (var item in actualPower)
{
power.Add(Convert.ToDateTime(item.timeStamp.localTimeStamp), Convert.ToDecimal(item.deviceData.value));
value.Add(Convert.ToDecimal(item.deviceData.value));
timeStamp.Add(Convert.ToDateTime(item.timeStamp.localTimeStamp));
}
ViewBag.Power = power;
ViewBag.Value = value;
ViewBag.TimeStamp = timeStamp;
return View();
}
[HttpPost]
public String Index(DateTime date)
{
if (date != null)
return "Success";
return "Failure";
//return Content(Convert.ToString(date));
}
public ActionResult About()
{
return View();
}
}
}
Hi
I have question to you how I can pass id to my custom popup.
The whole problem is that I need to load specific data to my dropdownlist. and I need pass id off item which is in edition.
I tried:
@Html.Kendo().DropDownListFor(m => m.Level).DataTextField("Text").DataValueField("Value").DataSource(dataSoruce => dataSoruce.Read(read => read.Action("LoadPosibleOrderDll", "ProductCategories", new { categoryId = Model.ParentCategory })))
model of tree list
.Model(model => { model.Id(p => p.Id);
model.ParentId(p => p.ParentId);
model.Field(p => p.Id).Editable(false);
model.Field(p => p.Level);
model.Field(p => p.ProductCategoryOrder);
model.Field(p => p.Parent.Name);
model.Field(p => p.OrderPosibilities );
})
I am storing the values selected with my Cascading ComboBoxes in the local storage so it will remember what they have chosen. The problem is when the browser back button in clicked, the Cascaded combobox's Datasource is empty so when I set the value it just puts the # in the drop down instead of showing the selected item.
From what I can tell it is not calling the read method when the back button is pressed and is not cacheing the list since I am using ServerFiltering. I have even tried manually calling the read method of the datasource in JavaScript but to no avail.
How can I get this list to re-populate when the back button is used?
<div class="col-md-6"> @(Html.Kendo().ComboBox() .Name("Clients") .DataValueField("ClientId") .DataTextField("ClientName") .Placeholder("Select Client...") .Filter(FilterType.Contains) .Events(events => events.Cascade("Clients_cascade").Change("Clients_change")) .DataSource(ds => ds .Read(read => read.Action("GetClients", "Home"))) )</div><div class="col-md-6"> @(Html.Kendo().ComboBox() .Name("Projects") .DataValueField("ProjectId") .DataTextField("ProjectName") .Placeholder("Select Project...") .Filter(FilterType.Contains) .AutoBind(false) .CascadeFrom("Clients") .Events(events => events.Change("Projects_change")) .DataSource(ds => ds .Read(read => read.Action("GetProjectsForClient", "Home").Data("FilterProjects")) .ServerFiltering(true) .Events(events => events.Error("Projects_error"))) )</div>I have worked based on : .Filter(filter => filter.Add(/* your filter rule */)) , that I found in here.
My code is :
var grid =
Html.Kendo().Grid<dynamic>().Name(Model.Current.Id).HtmlAttributes(new
{
// lot of stuff
}
grid.DataSource(ds =>
{
var ajaxDsBuilder = ds.Ajax();
ajaxDsBuilder.Model(model => model.Id("ID")).Events(ev => ev.Error("gridOnError")).ServerOperation(Model.Current.LazyLoading);
// mode code
var cols = Model.Current.Columns.ToList();
foreach (var col in cols)
{
ajaxDsBuilder.Sort(sort => sort.Add(col.Name).Ascending()); // this works perfect for pre-sorting ( col.Name = the column name )
ajaxDsBuilder.Group(grp => grp.Add(col.Name, typeof(string))); // this the same works great for pre-grouping
but when I try this:
ajaxDsBuilder.Filter(f => f.Add(c=> c.col.Name).IsEqualTo("TEST"));
I get : Error309 An expression tree may not contain a dynamic operation
if I try: ajaxDsBuilder.Filter(f => f.Add(c=> col.Name.ToString()).IsEqualTo("TEST")); // I am overriding ToString() to give me the name of column
I get : Internal server error
if I try: ajaxDsBuilder.Filter(f => f.Add(c=> col.Name).IsEqualTo("TEST"));
I get : Property with specified name: col.Name cannot be found on type: System.Data.DataRowView
I have also worked with lambda expressions, but I have pretty much the same errors.
My grid has to be dynamic, so I can't change that.
Any help?
Hello.
I am using the following:
Asp.net MVC 5
Ajax binding
Inline Editing
I need to pass a value to to the grid so it is populated automatically (see attached screenshot). I have google'd looked at these forums, but the following doesn't seem to populate the value in the grid.
.Read(read => read.Action("CustomerClass_Read", "CustomerClass").Data("{ CustomerId: " + @Model.CustomerId + "}"))I know how to do this with through an Actionlink:
@Html.ActionLink("New", "Create", "ShipTo", new { CustomerId = Model.CustomerId }, new { @class = "btn btn-default btn-sm" })Please advise.
Thanks

