The data is displayed in my nested grid (binds to the main grid's collection property) inside the main grid's editor template. But when I try to add/update the data the editor template is found but not displayed correctly. For some reason it just shows 0 instead of the editor template content. What could be the problem here?
p.s. Found this on the forum:
When you are trying to load a helper that will contain templates in another template (in this case the Popup template of the main Grid), you need to ensure that you are calling the ToClientTemplate method over the nested helpers. This should resolve the escaping in the templates and it should resolve the problem that you are facing
So I've added ToClientTemplate() to my nested grid & tried adding it to the helpers inside the nested grid's popup editor but this changes nothing,the problem is the same.
@model App.UI.Web.Models.SuitViewModel
@(Html.Kendo().DropDownTreeFor(x => x.subjectid) .Name("subjectsDDT") .HtmlAttributes(new { style = "width: 500px;" }) .DataSource(ds => ds.Read("ReadDropDownTreeSubjects", "BaseDirectory") ) .Placeholder("Select subject...") .Filter("contains") .DataTextField("name") .DataValueField("id") .ValuePrimitive(true) .ClearButton(false) .Events(ev => ev.Select("watch")) )
Hello,
I'm using Kendo Editor to handle the rich text content. We have a strange issue when the pasted html contains the attribute value with the keyword " on". Please find below the description.
<span data-sheets-userformat="{"2":15037,"3":{"1":0},"5":{"1":[{"1":2,"2":0,"5":{"1":2,"2":0}},{"1":0,"2":0,"3":3},{"1":1,"2":0,"4":1}]},"6":{"1":[{"1":2,"2":0,"5":{"1":2,"2":0}},{"1":0,"2":0,"3":3},{"1":1,"2":0,"4":1}]},"7":{"1":[{"1":2,"2":0,"5":{"1":2,"2":0}},{"1":0,"2":0,"3":3},{"1":1,"2":0,"4":1}]},"8":{"1":[{"1":2,"2":0,"5":{"1":2,"2":0}},{"1":0,"2":0,"3":3},{"1":1,"2":0,"4":1}]},"10":2,"12":0,"14":{"1":2,"2":0},"15":"Calibri","16":11}" data-sheets-value="{"1":2,"2":"Just once"}" style="font-size:11pt;font-family:Calibri, Arial;">Just once</span><br />
Uncaught DOMException: Failed to execute 'setAttribute' on 'Element': 'k-script-once"}"' is not a valid attribute name.
Problem appears to be in the function "_preventScriptExecution" and the statement : this.setAttribute('k-script-' + name, attribute.value);
Note: This issue happens ONLY when we have html and the attributes are having the keyword " on" (“space” followed by text “on”)
Example:
attribute="{"key":" on"}"
data-sheets-value="{"2":"Just once"}"
I have attached the sample screenshots and the html input data.
Could you please let me know if there is a fix for this issue?
Thanks in advance for your feedback.
Regards,
Puru
I know how to call a client-side javascript function to get parameters to pass to the the controller for the various actions of a grid. But what if I need to call a javascript function that itself takes a parameter? How to I pass a value from the grid's action, data methods to the javascript function?
Thank you in advance for your advice.
//grid setup... .Create(update => update.Action("Add", "MyController).Data("GetParams")) .Update(update => update.Action("Update", "MyController").Data("GetParams")) ... function GetParams(fSomeFlag) { var retVal; if (fSomeFlag = true) retVal = "someValForCreate"; else retVal = "someValForUpdate"; return { param1 : retVal, param2: "someOtherValue" };
Hello,
I have implemented the ASP.NET MVC Gantt into my project. I am having a slight issue when adding to the grid.
After adding, the entry for the Task shows a skinny bar with no text, when in fact database shows it does have text for the entry. Hovering over it shows the correct text. Picture below:
Refreshing the grid does not update it, although it appears totally correct in the database. Thanks for any help. Side question - how can I change the theme of my grid? I saw there are many theme options.
Hi..
I am experiencing that when i create an event via the popup on scheduler, and save, a debug breakpoint placed in the Create method of the controller, can be observed to fire between 2 and 4 times. i checked the database and it indeed runs the whole save process 2 or 4 times with the same data.
My view has the following code:
<div id="citizenAppointmentCalender" class="calenderContainer">
@(Html.Kendo().Scheduler<AppointmentTaskViewModel>()
.Name("appointmentsCalender")
.Height(820)
.Editable(e => {
e.TemplateName("CitizenAppointmentsEditorPartialView");
e.EditRecurringMode(SchedulerEditRecurringMode.Series);
})
.DateHeaderTemplate("<strong>#=kendo.toString(date, 'ddd dd-MMM')#</strong>")
.AllDaySlot(false)
.Timezone("Europe/Copenhagen")
.EventTemplate("<div class='eventBox' style='background-color:#= BackColor #; color:#= FontColor #;'><div class='eventInner'><span>#= title #</span></div><div class='eventInner'><span>#= description #</span></div></div>")
.Views(views => {
views.DayView();
views.WeekView(x => x.Selected(true));
views.MonthView();
})
.Events(x => {
x.Edit("caed_Dialog_Edit");
x.Save("caed_Dialog_Save");
})
.DataSource(d => {
d.Model(m => { m.Id(f => f.ID); });
d.Read(read => read.Action("Read", "CitizenDashboard").Type(HttpVerbs.Post));
d.Create("Create", "CitizenDashboard");
d.Destroy("Destroy", "CitizenDashboard");
d.Update("Update", "CitizenDashboard");
})
)
</div>
The controller code:
public virtual JsonResult Create([DataSourceRequest] DataSourceRequest request, AppointmentTaskViewModel task) { if (ModelState.IsValid) { appointmentService.Insert(task, ModelState); } return Json(new[] { task }.ToDataSourceResult(request, ModelState)); }
Finally the javascript for the "edit" and "save" events:
function caed_Dialog_Edit(e) {
$("#caed_eventType_private")[0].checked = false;
$("#caed_eventType_medical")[0].checked = false;
$("#caed_eventTypes_PrivateBox")[0].classList.add("hide");
if (e.event.Type == 3) {
$("#caed_eventType_private")[0].checked = true;
$("#caed_eventTypes_PrivateBox")[0].classList.remove("hide");
} else if (e.event.Type == 2) {
$("#caed_eventType_medical")[0].checked = true;
}
var buttons = e.container[0].children[0].children[1];
if (e.event.IsNexusAppointment) {
$("#caed_Title")[0].setAttribute("disabled", "disabled");
$("#caed_Description")[0].setAttribute("disabled", "disabled");
$("#caed_startDate").data("kendoDateTimePicker").enable(false);
$("#caed_endDate").data("kendoDateTimePicker").enable(false);
$("#caed_eventType_medical")[0].setAttribute("disabled", "disabled");
$("#caed_eventType_private")[0].setAttribute("disabled", "disabled");
$("#caed_isPersonal")[0].setAttribute("disabled", "disabled");
$("#caed_recurrence").data("kendoRecurrenceEditor").element[0].disabled = true;
buttons.children[0].classList.add("hide"); // Save btn
buttons.children[1].innerText = "OK";
if (buttons.children.length >= 3)
buttons.children[2].classList.add("hide"); // Delete btn
} else {
$("#caed_Title")[0].removeAttribute("disabled");
$("#caed_Description")[0].removeAttribute("disabled");
$("#caed_startDate").data("kendoDateTimePicker").enable(true);
$("#caed_endDate").data("kendoDateTimePicker").enable(true);
$("#caed_eventType_medical")[0].removeAttribute("disabled");
$("#caed_eventType_private")[0].removeAttribute("disabled");
$("#caed_isPersonal")[0].removeAttribute("disabled");
$("#caed_recurrence").data("kendoRecurrenceEditor").element[0].disabled = false;
buttons.children[0].classList.remove("hide"); // Save btn
buttons.children[1].innerText = "Fortryd";
if (buttons.children.length >= 3)
buttons.children[2].classList.remove("hide"); // Delete btn
}
}
function caed_Dialog_Save(e) {
if (e.event.caed_eventType_radio)
e.event.Type = parseInt(e.event.caed_eventType_radio);
if (e.event.Type == 3) {
e.event.IsPersonal = e.event.caed_isPersonal ? e.event.caed_isPersonal : false;
e.event.BackColor = "#ffa500";
e.event.FontColor = "#fff";
} else if (e.event.Type == 2) {
e.event.BackColor = "#F02222";
e.event.FontColor = "#fff";
}
var scheduler = $("#appointmentsCalender").data("kendoScheduler");
scheduler.dataSource.sync();
}
With these 3 snippets of code.. you can duplicate the issue. No need for a sample project. The "Insert" method simply puts the data from the model into an entity framework object and saveChanges is called, nothing more. But by then its already reproducible.
So just make a new event and press save. Remember to put a breakpoint at the start of the create method.
HOW can i prevent this from happening?
We're using a virtualized MultiColumnComboBox including the filter functionality 'contains'.
Unfortunately a filter on an integer field throws an error 'FormatException' on ToDataSourceResult.
Is there a default way of making this work, or do we have to modify the DataSourceRequest manually?
If the latter, is there an example of how to do it?
a model is returned to the form in which parameter "Raion" bool has a value of true or false.
How to make it so that CheckBox itself takes the required value?
@(Html.Kendo().CheckBox().Name("Raion").Label("Выезд на район"))
public class ServiceViewModel
{
*****
public bool Raion { set; get; }
****
}
@model service.Models.ServiceViewModel@(Html.Kendo().CheckBox().Name("Raion").Label("Выезд на район"))
Good afternoon,
I've successfully managed to use PdfProcessing in a similar way to the demo but I want to include some error capture. What's the best way to return the error to the View and display it e.g. if the file doesn't exist?
[HttpPost]
public ActionResult Download_Document()
{
try
{
PdfFormatProvider formatProvider = new PdfFormatProvider();
formatProvider.ExportSettings.ImageQuality = ImageQuality.High;
byte[] renderedBytes = null;
using (MemoryStream ms = new MemoryStream())
{
RadFixedDocument document = CreatePdfDocument.CreateDocument();
formatProvider.Export(document, ms);
renderedBytes = ms.ToArray();
}
return File(renderedBytes, "application/pdf", "PdfDocument.pdf");
}
catch (Exception e)
{
return e.Message;
}
}
Kind regards,
Richard