Hello,
I can't get the Destroy method to work, I often get a 415 error with the GetListUsersDto object as parameters.
@(Html.Kendo().Grid<GetListUsersDto>().Name("GetListUsersGrid")
.Groupable()
.Sortable()
.Editable()
.Scrollable()
.ToolBar(x => x.Create())
.Columns(columns =>
{
columns.Bound(c => c.ID).Title(@Localizer["Tab_User_Id"].Value);
columns.Bound(c => c.Surname).Title(@Localizer["Editing_User_Surname"].Value);
columns.Bound(c => c.Firstname).Title(@Localizer["Editing_User_Firstname"].Value);
columns.Bound(c => c.RoleName).Title(@Localizer["Editing_User_Role"].Value);
columns.Bound(c => c.DateDebActif).Title(@Localizer["Editing_User_Start_Date"].Value).Format("{0:M/d/yyyy HH:mm:ss}"); ;
columns.Bound(c => c.DateFinActif).Title(@Localizer["Editing_User_End_Date"].Value).Format("{0:M/d/yyyy HH:mm:ss}"); ;
columns.Command(c =>
{
c.Edit();
c.Destroy();
});
}).DataSource(dataSource => dataSource.Ajax()
.Read(r => r.Action("getusers", "admin"))
.Create(r => r.Action("createuser", "admin"))
.Destroy(r => r.Action("deleteuser", "admin"))
.Model(model =>
{
model.Id(m => m.ID);
model.Field(f => f.ID).DefaultValue(Guid.NewGuid());
}
)).Pageable())
[HttpPost]
[Authorize(PolicyEnum.Administrateur)]
[Route("deleteuser")]
public string DeleteUser([DataSourceRequest] DataSourceRequest request, GetListUsersDto dto)
{
//var result = adminService.DeleteUser(dto.ID);
return JsonConvert.SerializeObject(new {/* error = result.IsError, message = localizer[result.IdMessage].Value + result.Message */});
}
public class GetListUsersDto
{
public Guid ID { get; set; }
public string Surname { get; set; }
public string Firstname { get; set; }
public string Username { get; set; }
public bool IsActif { get; set; }
public int RoleId { get; set; }
public string RoleName { get; set; }
public int LangId { get; set; }
public string LangName { get; set; }
public DateTime DateDebActif { get; set; }
public DateTime DateFinActif { get; set; }
}
If I change my GetListUsersDto method to Guid ID, the method works but the Guid is empty.
[HttpPost]
[Authorize(PolicyEnum.Administrateur)]
[Route("deleteuser")]
public string DeleteUser([DataSourceRequest] DataSourceRequest request, Guid Id)
{
//var result = adminService.DeleteUser(Guid.Parse(ID));
return JsonConvert.SerializeObject(new {/* error = result.IsError, message = localizer[result.IdMessage].Value + result.Message */});
}
If I only set a DataSourceRequest request, the method works, but doesn't return a usable object for my service.
[HttpPost]
[Authorize(PolicyEnum.Administrateur)]
[Route("deleteuser")]
public string DeleteUser([DataSourceRequest] DataSourceRequest request)
{
//var result = adminService.DeleteUser();
return JsonConvert.SerializeObject(new {/* error = result.IsError, message = localizer[result.IdMessage].Value + result.Message */});
}
I don't know what to do. Does anyone have a solution or idea?
Thank you,
My problem is that my MVC Grid was working up to Friday April 12, 2024, and now it's not. The Filter is causing my grid to error out. If I remove the Filter, my Grid works fine. If I use .Filterable(ftb => ftb.Mode(GridFilterMode.Row)), the Grid works fine.
What is causing my filtered grid not to work now? Below is my Grid:
@(Html.Kendo().Grid<AL.CC.DataContracts.DTO.Parts>()
.Name("PNGrid")
.Columns(columns =>
{
columns.Bound(p => p.Id).Hidden();
columns.Bound(p => p.pn).Width("150").Title("Part").Filterable(true);
columns.Bound(p => p.name).Width("150").Title("Name").Filterable(true);
columns.Bound(p => p.year).Width("150").Title("Year").Filterable(true);
})
.Selectable()
.Sortable(sortable => sortable.AllowUnsort(true).InitialDirection(System.ComponentModel.ListSortDirection.Descending).SortMode(GridSortMode.MultipleColumn))
.Scrollable(s => s.Enabled(true).Height("auto"))
.Resizable(resize => resize.Columns(true))
.AutoBind(true)
.HtmlAttributes(new { style = "width:100%; height:675px;" })
.Events(events => events.Change("Grid_OnRowSelect").DataBound("onDataBoundPN"))
.Filterable(filterable => filterable
.Extra(false)
.Operators(operators => operators
.ForString(str => str.Clear()
.Contains("Contains")
))
)
.DataSource(dataSource => dataSource
.Ajax()
.Read(read => read.Action("GetAll_Read", "Maintenance"))
.ServerOperation(false)
.AutoSync(true)
.Model(model =>
{
model.Field(p => p.id).Editable(false);
model.Field(p => p.name).Editable(false);
model.Field(p => p.year).Editable(false);
model.Field(p => p.pn).Editable(false);
})
)
)
I'm also using the following scripts and css in the following order:
<link rel="stylesheet" href="https://code.jquery.com/ui/1.13.2/themes/base/jquery-ui.css">
<script src="https://code.jquery.com/jquery-3.7.0.min.js" integrity="sha256-2Pmvv0kuTBOenSvLm6bvfBSSHrUJ+3A7x6P5Ebd07/g=" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-validate/1.20.0/jquery.validate.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-validation-unobtrusive/4.0.0/jquery.validate.unobtrusive.min.js"></script>
<script src="~/Scripts/kendo/2023.3.1114/jszip.min.js"></script>
<script src="~/Scripts/kendo/2023.3.1114/kendo.all.min.js"></script>
<script src="https://cdn.kendostatic.com/2023.3.1114/js/kendo.aspnetmvc.min.js"></script>
<script src="https://code.jquery.com/ui/1.13.2/jquery-ui.min.js" integrity="sha256-lSjKY0/srUM9BE3dPm+c4fBo1dky2v27Gdjm2uoZaL0=" crossorigin="anonymous"></script>
<link href="https://kendo.cdn.telerik.com/themes/6.4.0/default/default-ocean-blue.css" rel="stylesheet" type="text/css" />
<link href="https://kendo.cdn.telerik.com/themes/6.4.0/bootstrap/bootstrap-main.css" rel="stylesheet" type="text/css" />
Hi all,
I have a grid with multiple cascading dropdown columns, each dropdown gets filtered calling a method in my controller.
What I want now it is simply populate a non editable text column based on the value from one of my previous dropdowns calling a filter method on my controller.
Thank you
LnZ
I'm having an issue with a Grid component. I have 2 custom editors for 2 small dropdown lists. Anytime I select anything other than the default options for either (or both) dropdown lists, the default still gets assigned to the field for some reason. I've tried debugging but it seems that it's getting changed before anything is sent to the controller (defaults are already present in the post action).
I set the custom editors up using the instructions here.
This is the component itself
@(
Html.Kendo().Grid<CHAASAddInsuredsViewModel>()
.Name("AddlInsureds")
.Columns(columns =>
{
columns.Bound(c => c.FirstName).Width(130);
columns.Bound(c => c.MiddleInitial).Width(70);
columns.Bound(c => c.LastName).Width(150);
columns.Bound(c => c.DOB).Format("{0:MM/dd/yyyy}").Width(150);
columns.Bound(c => c.RelationshipType)
.ClientTemplate("#=RelationshipType.RelationshipName#")
.EditorTemplateName("RelationshipTypeEditor").Width(140);
columns.Bound(c => c.Gender)
.ClientTemplate("#=Gender.GenderName#")
.EditorTemplateName("GenderEditor").Width(150);
columns.Bound(c => c.SSN).Width(160)
.HtmlAttributes(new { @class = "text-center" });
@* .EditorTemplateName("SSNEditorTemplate"); *@
@* .ClientTemplate("<h4>XXX-XX-XXXX</h4>"); *@
columns.Command(c => { c.Edit(); c.Destroy(); });
}
)
.ToolBar(toolbar => toolbar.Create().Text("Add Family Member"))
.Editable(editable => editable.Mode(GridEditMode.InLine)
.ConfirmDelete("Continue to delete this record?")
.DisplayDeleteConfirmation("Continue to delete this record?"))
.Sortable()
.Scrollable()
@* .HtmlAttributes(new { style = "height:550px;" }) *@
.DataSource(d => d
.Ajax()
.Model(m =>
{
m.Id(i => i.Id);
m.Field(f => f.RelationshipType)
.DefaultValue(ViewData["defaultRelationshipType"] as HNL_Agents.Models.AddlInsuredRelationshipType);
m.Field(f => f.Gender)
.DefaultValue(ViewData["defaultGender"] as HNL_Agents.Models.AddlInsuredGender);
})
.Events(e => e.Error("error_handler"))
.Create(c => c.Action("Insured_CreateUpdate", "CHAAS", new { modelAppId = Model.AppId }))
.Read(r => r.Action("GetInsureds", "CHAAS", new { modelAppId = Model.AppId}))
.Update(c => c.Action("Insured_CreateUpdate", "CHAAS", new { modelAppId = Model.AppId }))
.Destroy(d => d.Action("RemoveInsureds", "CHAAS"))
)
)
My model is as follows.
public class CHAASAddInsuredsViewModel
These are the custom editors for the drop down lists
@(
Html.Kendo().DropDownList()
.Name("RelationshipType")
.DataValueField("RelationshipId")
.DataTextField("RelationshipName")
.BindTo((System.Collections.IEnumerable)ViewData["relationshipTypes"])
)
@(
Please let me know if there is anything I'm missing or if you need any more information. Thanks for the help!
Hi,
I am getting extra characters like þÿPDF Check in metadata of the exported PDF from Kendo grid. That reflects into the title of the PDF in chrome browser.
Is there any way to remove that extra characters from the metadata using jQuery?
I am attaching screenshot of the PDF file.
I have a simple MVC Grid
with a column that looks like this
columns.Bound(c => c.FirstName).Filterable(fi => fi.Cell(ce => ce.Operator("contains").SuggestionOperator(FilterType.Contains)));
the grid is just
.Filterable()
Searching and GPT told me to do it this way, however when I filter that column I still only get the default filter of Equals
https://imgur.com/FewY7E0
Hi
How do you enable tabbing on all elements in a Kendo Grid. I have set .Navigatable() - but doesn't seem to do anything.
I want the user to tab through the rows, including the page numbers (items per page) and the filter boxes.
thx!@
Hello,
I'm encountering an issue with the autocomplete functionality in Kendo UI Grid. While the data selected through autocomplete is correctly added to hidden fields, it does not appear in the Grid.
Specifically, after using the autocomplete functionality, I checked whether the correct data was added to the respective hidden fields and found that the values I expected were indeed present in those fields. However, I noticed that these values were not visible in the Grid. This implies that the data selected by users is not being properly reflected within the Grid.
In summary, I am unable to display the data received through the autocomplete functionality within the Grid. I would appreciate any suggestions to resolve this issue.
The code structure related to the problem I mentioned above is as follows.
@(Html.Kendo().Grid(Model.Lines)Thank you in advance for your support.
I had a request to change the filtering of a certain column from "Starts With" to use a multi-select checkbox type filter to facilitate selecting 5-10 random items. Then of course some other users prefer the "Starts With" type of filtering. My solution is to have dual columns for that particular field, one with each filter type.
Since my grids save user preferences in local storage between sessions, the users can hide whichever column has the filtering they don't prefer and just use the other one. When they reload the page, their choice of column persists and their filtering is how they like it.
Darron