We have large trees that contains multiple levels like:
Root
Item 1
Item1-A
Item1-B
Item 2
Item2-A
Item2-B
The children are loaded dynamically using the onselect event for the item, so using the above example, Item1-A has children, but they have not yet been loaded when the tree is created. Item1-A will display with the expand arrow.
Clicking on the Item1-A (text in the tree), expands to show the children, however when clicking on the expand arrow next to Item1-A, the expand arrow disappears, the Item1-A text is selected, but the onselect event is not fired so the children are not displayed.
We don't want to load the next level children (which does resolve the problem) due to performance requirements.
Is there any way we can either
a) Disable the expand arrow action (i.e. we are happy if the user consistently just clicks on the item text and the expand arrow is for display only)
or
b) Fire a select event when clicking on the expand arrow so that it performs the same action as clicking on the text in the tree.
Thanks.
Hi
When I'm trying to send the model with information in it to the edit view, I get a System.OverflowException : Value was either too large or too small for an Int32
in the StackTrace I get:
en System.Convert.ToInt32(Double value)
en System.Double.System.IConvertible.ToInt32(IFormatProvider provider)
en System.Convert.ChangeType(Object value, Type conversionType, IFormatProvider provider)
en System.Convert.ChangeType(Object value, Type conversionType)
en Kendo.Mvc.UI.Fluent.WidgetFactory`1.GetRangeValidationParameter[TValue](IEnumerable`1 validators, String parameter)
en Kendo.Mvc.UI.Fluent.WidgetFactory`1.NumericTextBoxFor[TValue](Expression`1 expression)
en ASP._Page_Views_Grupo_Edit_cshtml.Execute() en C:\Users\Pablo.Contreras\Documents\Visual Studio 2015\Projects\Administrativo\Grupos\NaveganteGruposBackEnd\NaveganteGruposBackEnd\Views\Grupo\Edit.cshtml:lĂnea 232
en System.Web.WebPages.WebPageBase.ExecutePageHierarchy()
en System.Web.Mvc.WebViewPage.ExecutePageHierarchy()
en System.Web.WebPages.StartPage.RunPage()
en System.Web.WebPages.StartPage.ExecutePageHierarchy()
en System.Web.WebPages.WebPageBase.ExecutePageHierarchy(WebPageContext pageContext, TextWriter writer, WebPageRenderingBase startPage)
en System.Web.Mvc.RazorView.RenderView(ViewContext viewContext, TextWriter writer, Object instance)
en System.Web.Mvc.BuildManagerCompiledView.Render(ViewContext viewContext, TextWriter writer)
en System.Web.Mvc.ViewResultBase.ExecuteResult(ControllerContext context)
en System.Web.Mvc.ControllerActionInvoker.InvokeActionResult(ControllerContext controllerContext, ActionResult actionResult)
en System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilterRecursive(IList`1 filters, Int32 filterIndex, ResultExecutingContext preContext, ControllerContext controllerContext, ActionResult actionResult)
en System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilterRecursive(IList`1 filters, Int32 filterIndex, ResultExecutingContext preContext, ControllerContext controllerContext, ActionResult actionResult)
In my model the field is int, and I allready try change it to INT32 with no results.
Hi, I'm trying to UPDATE and DELETE some rows from the spreadheet control, with datasource binding.
I've a custom defined button with save function:
$("#savebuttons").on('click', '#Save', function () {
if (!$(this).hasClass("k-state-disabled")) {
getDataSource().sync();
}
});
The datasource looks like this:
.DataSource<Siergy.BackOffice.Models.Management.ProjectElementViewModel>
(ds => ds
.Ajax()
.Batch(true)
.Read(read => read.Action("ProjectElementsSpreadsheet_Read", "ProjectsManagement"))
.Update(update => update.Action("ProjectElementsSpreadsheet_Update", "ProjectsManagement"))
.Create(create => create.Action("ProjectElementsSpreadsheet_Create", "ProjectsManagement"))
.Destroy(destroy => destroy.Action("ProjectElementsSpreadsheet_Destroy", "ProjectsManagement"))
.Events(e => e.Change("onChange"))
.Model(m =>
{
m.Id(p => p.IdElement);
})
);
All is working well to update rows, but destroy action never fires in the server, how can I get this working?
From DataSource documentation:
sync
Saves any data item changes.
The sync method will request the remote service if:
the transport.create option is set and the data source contains new data items
the transport.destroy option is set and data items have been removed from the data source
the transport.update option is set and the data source contains updated data items
Is it valid for spreadsheet datasources too?
Best Regards
I don't know if it is only possible through async method.
I am not using any form.
Right now I am passing other data
var data = {
Action: $("#Action").val(),
Follow: $("#Follow").val(),
EmailAddress: $.trim($("#emailaddress").val()),
...
};
$.ajax({
url: webManager.resolveUrl("~/maint/Submit"),
type: "POST",
data: data
success: function (response) {
Hi,
we're evaluating the Spreadsheet component for our solution and while we love most of it, we are having a blocking issue in the hide/unhide feature
In our case, we have a kind of "control panel with button" around the spreadsheet, which allows the user to hide/unhide some blocks of (potentially non contiguous rows or columns in one click). E.g. let's say you click a button and you hide rows 1, 7, 15, and 50 and columns E, F and Z.
The Spreadsheet client side API exposes single col/row hide methods and the overall time is very high
(e.g. 3 seconds to hide like some 40-60 rows)
Do you think there is or will be a workaround/fix on this?
thanks in advance
Sebastian
Currently we have complicated model which has objects.
Model:
class Person {
string name{get; set;}
ContactInfo contactInfo{get; set;}
}
class ContactInfo {
string phoneNumber {get; set;}
string address{get; set;}
}
View:
@(Html.Kendo().Grid(Model.Person).Name("testGrid")
.Columns(columns =>
{
columns.Bound(x => x.name);
columns.Bound(x => x.ContactInfo.phoneNumber);
....
in JS Console, with "$("#testGrid").data("kendoGrid").dataSource.data()" I see everything is good at the first load.
However, when I edit "phonenumber", the datasource looks like this:
o
-> Person
->Name:"xxx"
->ContactInfo
->phoneNumber :"xxxx"
->address : "xxxxxx"
->ContactInfo.phoneNumber: ""
we used Jquery.ajax to send the data in js so it has duplicated "ContactInfo.phoneNumber" after stringify, then it never reaches the MVC controller.
Questions:
1. How to solve this issue?
2. How to avoid this additional "ContactInfo.phoneNumber" been created?
Thanks!
How do I filter when I have the option for multiple selections using the Separator property
I have a Read action set up which passes the search data through to my controller and I have a client side script set up for the additional data
When a user has selected one user and then starts typing for the second user this pass "Name One; Nam" to the controller.
$("#distributionList").val() is passing the whole string and not the new search for the second name. How can I pass just the text that is being typed in and not the previously selected users.
1.
function
onDistributionListAdditionalData(obj) {
2.
return
{
3.
text: $(
"#distributionList"
).val()
4.
};
5.
}
So I have a large list of Id's that I want to create a filter for and return. I was just adding a FilterDescriptor for each one but I found that once it got over a certain amount I get a stack overflow error. So I am trying to use the IsContainedIn operator.
private static void AddSiteIdFilterToRequest(DataSourceRequest request, IList<Guid> siteGuidList, string columnName)
{
if (siteGuidList == null || !siteGuidList.Any()) return;
var filterCollection = new CompositeFilterDescriptor { LogicalOperator = FilterCompositionLogicalOperator.Or };
filterCollection.FilterDescriptors.Add(new FilterDescriptor { Member = columnName, MemberType = typeof(Guid), Operator = FilterOperator.IsContainedIn, Value = siteGuidList });
request.Filters.Add(filterCollection);
}
I have implemented a custom tooltip for the scheduler. works great.
BUT - on mouse over the "title" popup is appearing along with the tooltip.
Question - How do I disable the "title" popup.
I tried using
$("#scheduler").kendoCalendar({
//....
navigate: function (e) {
this.element.find("tbody").find("a").removeAttr("title");
}
});
and it messed up the whole formatting of the calendar