Hi,
I have a Kendo grid that looks like :
@(Html.Kendo().Grid<UserHolidayRightDto>()
.Name("gridHoliday")
.ToolBar(tool=>tool.Create())
.Columns(columns =>
{
columns.Bound(p => p.Date).Format("{0:MM/dd/yyyy}").Title("Date added");
columns.Bound(p => p.ValidForYear).Title("For year");
columns.ForeignKey(p => p.RightTypeId, (System.Collections.IEnumerable)@Model.HolidayRightsView, "Id", "Name").Title("Right type").HtmlAttributes(new{@Id="HolidayRightsDropDown"});
columns.Bound(p => p.Days).Title("Days");
columns.Bound(p => p.Comment).Title("Comment");
columns.Command(command => { command.Edit(); command.Destroy(); }).Width(172);
})
.Scrollable(s=>s.Height(200))
.Editable(editable => editable.Mode(GridEditMode.InLine))
.Events(e=>e.Edit("edit"))
.Events(e=>e.DataBound("onDataBound"))
.DataSource(dataSource => dataSource
.Ajax()
// .Batch(true)
// .ServerOperation(false)
.Model(model =>
{
model.Id(p => p.Id);
model.Field(p => p.ValidForYear).Editable(false).DefaultValue(@DateTime.Now.Year);
model.Field(p => p.Date).Editable(false);
})
.Events(e=>e.RequestEnd("UpdateWindow"))
.Read(read=>read.Action("ReadData","HolidayRights",new {id=@Model.Employee.PersonID}))
.Create(update => update.Action("EditingInline_Create", "HolidayRights",new {personId=@Model.Employee.PersonID}))
.Update(update => update.Action("EditingInline_Update", "HolidayRights"))
.Destroy(update => update.Action("EditingInline_Destroy", "HolidayRights"))
))
I would like to make my foreign key column editable in create mode and disabled in edit mode. I've tried solutions like :
$("#HolidayRightsDropDown").attr("readonly", true);
and
var d = document.getElementById("HolidayRightsDropDown");
d.disabled = true;
but without success.
Any suggestions?
I have a Kendo grid that looks like :
@(Html.Kendo().Grid<UserHolidayRightDto>()
.Name("gridHoliday")
.ToolBar(tool=>tool.Create())
.Columns(columns =>
{
columns.Bound(p => p.Date).Format("{0:MM/dd/yyyy}").Title("Date added");
columns.Bound(p => p.ValidForYear).Title("For year");
columns.ForeignKey(p => p.RightTypeId, (System.Collections.IEnumerable)@Model.HolidayRightsView, "Id", "Name").Title("Right type").HtmlAttributes(new{@Id="HolidayRightsDropDown"});
columns.Bound(p => p.Days).Title("Days");
columns.Bound(p => p.Comment).Title("Comment");
columns.Command(command => { command.Edit(); command.Destroy(); }).Width(172);
})
.Scrollable(s=>s.Height(200))
.Editable(editable => editable.Mode(GridEditMode.InLine))
.Events(e=>e.Edit("edit"))
.Events(e=>e.DataBound("onDataBound"))
.DataSource(dataSource => dataSource
.Ajax()
// .Batch(true)
// .ServerOperation(false)
.Model(model =>
{
model.Id(p => p.Id);
model.Field(p => p.ValidForYear).Editable(false).DefaultValue(@DateTime.Now.Year);
model.Field(p => p.Date).Editable(false);
})
.Events(e=>e.RequestEnd("UpdateWindow"))
.Read(read=>read.Action("ReadData","HolidayRights",new {id=@Model.Employee.PersonID}))
.Create(update => update.Action("EditingInline_Create", "HolidayRights",new {personId=@Model.Employee.PersonID}))
.Update(update => update.Action("EditingInline_Update", "HolidayRights"))
.Destroy(update => update.Action("EditingInline_Destroy", "HolidayRights"))
))
I would like to make my foreign key column editable in create mode and disabled in edit mode. I've tried solutions like :
$("#HolidayRightsDropDown").attr("readonly", true);
and
var d = document.getElementById("HolidayRightsDropDown");
d.disabled = true;
but without success.
Any suggestions?
7 Answers, 1 is accepted
0
Jayesh Goyani
Top achievements
Rank 2
answered on 04 Jun 2013, 06:42 AM
Hello,
Please replace below function in to demo.
you can download full code in below link.
Set column editable mode based on another column value changes in kendo UI
Thanks,
Jayesh Goyani
Please replace below function in to demo.
function onGridEdit(arg) { // i have assumed that newly addded row have ID field's value is Zero. if (arg.model.ID) { var _id = parseInt(arg.model.ID); if (_id != 0) { if (arg.container.find("input[name=FID]").length > 0) { $("#MyGrid").data("kendoGrid").closeCell(arg.container) } } } }you can download full code in below link.
Set column editable mode based on another column value changes in kendo UI
Thanks,
Jayesh Goyani
0
Vlad
Top achievements
Rank 1
answered on 04 Jun 2013, 07:21 AM
Hi,
Thank you for your reply. Now I receive the following error: "Unable to get value of the property 'template': object is null or undefined". I see that you are using InCell editing and I use InLine editing.
Do you think that this is the problem?
Thank you,
Vlad
Thank you for your reply. Now I receive the following error: "Unable to get value of the property 'template': object is null or undefined". I see that you are using InCell editing and I use InLine editing.
Do you think that this is the problem?
Thank you,
Vlad
0
Jayesh Goyani
Top achievements
Rank 2
answered on 04 Jun 2013, 08:20 AM
Hello,
I am not able to reproduce such type of issue. By using below code.
VIEW
MODEL
CONTROLLER
Let me know if any concern.
Thanks,
Jayesh Goyani
I am not able to reproduce such type of issue. By using below code.
VIEW
<div> @(Html.Kendo().Grid<MvcApplication1.Models.TestModels>() .Name("MyGrid") .Columns(columns => { columns.Bound(p => p.ID); columns.Bound(p => p.Name); columns.Bound(p => p.IsActive); columns.ForeignKey(p => p.FID, (System.Collections.IEnumerable)ViewData["TestList"], "Value", "Text"); }) .ToolBar(tool => tool.Create()) .Editable(editable => editable.Mode(GridEditMode.InLine)) .Pageable() .Sortable() .Scrollable() .Filterable() .Events(e => e.Edit("onGridEdit")) .DataSource(dataSource => dataSource .Ajax() .Batch(true) .ServerOperation(false) .Events(events => events.Error("errorHandler")) .Model(model => { model.Id(p => p.ID); model.Field(p => p.ID).Editable(false); }) .Read(read => read.Action("ForeignKeyColumn_Read", "Home")) .Update(update => update.Action("ForeignKeyColumn_Update", "Home")) .Create(update => update.Action("ForeignKeyColumn_Update", "Home")) ) )</div><script type="text/javascript"> function errorHandler(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); } } function onGridEdit(arg) { // i have assumed that newly addded row have ID field's value is Zero. if (arg.model.ID) { var _id = parseInt(arg.model.ID); if (_id != 0) { if (arg.container.find("input[name=FID]").length > 0) { $("#MyGrid").data("kendoGrid").closeCell(arg.container) } } } } </script>public class TestModels { public int ID { get; set; } public string Name { get; set; } public bool IsActive { get; set; } public int FID { get; set; } }public ActionResult Index() { List<SelectListItem> items = new List<SelectListItem>(); for (int i = 1; i < 6; i++) { SelectListItem item = new SelectListItem(); item.Text = "text" + i.ToString(); item.Value = i.ToString(); items.Add(item); } ViewData["TestList"] = items; ViewBag.Message = "Modify this template to jump-start your ASP.NET MVC application."; return View(); }public ActionResult ForeignKeyColumn_Read([DataSourceRequest] DataSourceRequest request) { List<TestModels> models = new List<TestModels>(); for (int i = 1; i < 6; i++) { TestModels model = new TestModels(); model.ID = i; model.Name = "Name" + i; if (i % 2 == 0) { model.IsActive = true; model.FID = i; } models.Add(model); } return Json(models.ToDataSourceResult(request)); } [AcceptVerbs(HttpVerbs.Post)] public ActionResult ForeignKeyColumn_Update([DataSourceRequest] DataSourceRequest request, [Bind(Prefix = "models")]IEnumerable<TestModels> tests) { if (tests != null && ModelState.IsValid) { // Save/Update logic comes here } return Json(ModelState.ToDataSourceResult()); }Let me know if any concern.
Thanks,
Jayesh Goyani
0
Vlad
Top achievements
Rank 1
answered on 04 Jun 2013, 08:46 AM
Sorry, but I receive the same error even if I run your code. I'm using the following scripts:
jquery-1.9.1.js, kendo.all.min.js, kendo.aspnetmvc.min.js, and I receive the error in kendo.all.min.js
jquery-1.9.1.js, kendo.all.min.js, kendo.aspnetmvc.min.js, and I receive the error in kendo.all.min.js
0
Jayesh Goyani
Top achievements
Rank 2
answered on 04 Jun 2013, 09:13 AM
Hello,
Sorry but Can you please download demo from below link and check in to this issue?
https://skydrive.live.com/redir?resid=977B16A5E89A5236!107&authkey=!AIA_AIL-NfmBPBg
Thanks,
Jayesh Goyani
Sorry but Can you please download demo from below link and check in to this issue?
https://skydrive.live.com/redir?resid=977B16A5E89A5236!107&authkey=!AIA_AIL-NfmBPBg
Thanks,
Jayesh Goyani
0
Vlad
Top achievements
Rank 1
answered on 06 Jun 2013, 12:55 PM
Hi,
I still receive the same error when I try to call closeCell function.
Regards,
Vlad Cristea
I still receive the same error when I try to call closeCell function.
Regards,
Vlad Cristea
0
Jayesh Goyani
Top achievements
Rank 2
answered on 08 Jun 2013, 05:07 PM
Hello,
Can you please submit your project?
Thanks,
Jayesh Goyani
Can you please submit your project?
Thanks,
Jayesh Goyani