

I have a page that contains a parent grid and a child details grid. The parent grid uses popup editing and I can control the maxLength of the edit fields on the dialog. However, the child details grid allows inline editing and one of the fields ("Code") can only be a length of 3 digits.
I have seen other posts and examples using the .attr to set the element's maxlength, but this does not seems to work.
So, within my details grid there is a column called 'Code'. Inspecting the element while viewing the page in Chrome, shows the edit field to be an <input> element with and Id = 'Code' and Name = 'Code'. I have tried the following jquery within the DataBound event of the details grid. I also tried this in the document.ready function.
$("#Code").attr('maxlength', '3');
and
$("input[name='code']").attr('maxlength', '3');
Any chance of getting this as part of the grid declaration, possibly along with the column.Bound()?
Thanks,
Shawn

Is there a way to make something like this with MVC controls or Kendo UI :
https://demos.telerik.com/aspnet-ajax/fileexplorer/examples/client-sideapi/fileselectordialog/defaultcs.aspx
Thanks for your help.

Hi,
When I upload a file using the Upload control, I want to be able to change the name of the file on the server, but I want the user to see the original file name.
Is there a way to have a different name and value for each file in the list? If so, how is the value set?
Thanks,
Jess

I apologize if this is a silly question but is it possible that a single grid that has the inline editing capabilities for logged in users and just a read only grid for everyone else? If so where do I start?
Looking at the demo I thought I would have to create 2 grids and password-protect the one with inline-editing.
Thanks in advance
I've found the documentation on how to get the selected value from a drop down list on the DataBound event to be non-existant.
I eventually found the solution here: https://www.telerik.com/forums/dropdownlist-mvc---set-default-value-at-runtime
It is easy to get the selectedIndex in this event handler. Getting the value that this corresponds to so I can run some custom logic (show/hide fields, for example) when the document is being loaded (as opposed to a select event) was the tricky part.
I already had a generic function I called to obtain this value across the board. I was able to finally solve the issue of getting the selected value when not in the Select event (where the dataItem object is available) using the following code:
var GetValueFromKendoSelect = function (context, e) { // if this is from a select event then we'll get the dataitem var dataItem = GetDataItemFromKendoSelect(context, e); if (dataItem != undefined) { return dataItem.Value; } else { // if this is from a databound event we get it from the sender var sender = e.sender; if (sender == undefined) { console.log("Couldn't retrieve value from Kendo Select list"); console.log(e); return undefined; } else { var defaultItem = sender.dataSource.at(sender.selectedIndex); return "" + defaultItem.Value; } }}
I can then use this like this (you can see how it will then generate a usable result in the select and databound events):
var onPassportedBenefitInPaymentSelect = function (e) { var torPassport = GetValueFromKendoSelect(this, e); debugger; if (torPassport == undefined) { console.log("torPassport detected as undefined in torPassportBenefitSelectHandler"); return false; } return ProcessTORPassport(torPassport); } var onPassportedBenefitInPaymentDataBound = function (e) { var torPassport = GetValueFromKendoSelect(this, e); if (torPassport == undefined) { console.log("torPassport detected as undefined in torPassportBenefitOnDataBoundHandler"); return false; } return ProcessTORPassport(torPassport); } var ProcessTORPassport = function (torPassport) { var $passportedAnsweredGroup = $(".passported-answered-group"); var $passportedNoGroup = $(".passported-no-group"); var $passportedYesGroup = $(".passported-yes-group"); if (torPassport == "" || torPassport == null) { $passportedAnsweredGroup.hide(); } else { $passportedAnsweredGroup.show(); } switch (torPassport) { case "True": $passportedYesGroup.show(); $passportedNoGroup.hide(); break; case "False": $passportedNoGroup.show(); $passportedYesGroup.hide(); break; default: $passportedNoGroup.hide(); $passportedYesGroup.hide(); break; } }:
Perhaps the documentation could be clearer how this can be achieved, considering how simple it actually is in the end, yet how difficult it is to find the solution.

Hi,
I discovered a problem with ClearPromptChar configuration. When I set ClearPromptChar to true, I expect that the mask signs should not be in the output. I.e. when I define mask 000-000 and insert 123-456 into the MaskedTextBoxFor the output should be 123456. I would like to avoid removing "-" manually.
Example available at: http://dojo.telerik.com/aTEROJIG/3
Should it work as I expected or I misunderstood?
Thanks,
Tomas.

@(Html.Kendo().Grid<CMS_2013.Models.SeasonalProfile>().Name("Grid").Events(e=>e.Edit("onEdit")).Columns(columns=>{ columns.Bound(o => o.ID); columns.Bound(o => o.Profile_Code); columns.Bound(o => o.ProfileType); columns.Bound(o => o.Description); columns.Bound(o => o.Site); columns.Bound(o => o.PATCLASS); columns.Bound(o => o.Specialty); columns.Command(command => { command.Edit(); command.Destroy(); }); }) .ToolBar(commands=>commands.Create()) .Editable(editable=>editable .Mode(GridEditMode.PopUp)) .DataSource(dataSource=>dataSource .Ajax() .Model(m=>m.Id(p=>p.ID)) .Events(events => events.Error("error")) .PageSize(10) .Read(read=>read.Action("ReadProfiles","Profiles")) .Create(create=>create.Action("InsertProfile","Profiles")) .Update(update=>update.Action("UpdateProfile","Profiles")) .Destroy(delete=>delete.Action("DeleteProfile","Profiles")) ) .Pageable() .Sortable() .Filterable() )function error(e) { if (e.errors) { var message = "Errors:\n"; $.each(e.errors, function (key, value) { if ('errors' in value) { $.each(value.errors, function () { message += this + "\n"; }); } }); alert(message); } }This works fine, displaying the error message if the validation fails. However, I have two problems:-
How can I solve these two issues?
Thanks