Telerik Forums
Kendo UI for jQuery Forum
1 answer
357 views

I have a Kendo grid that has a requirement for using a conditional dropdown in combination with batch editing. 

For instance I need to allow an order enterer set the color of a product from a dropdown, but each product has a potentially different set of available colors.

I have done something similar with InLine editing without a problem and the ajax call to populate the dropdown is getting called correctly in batch mode.  The problem appears to be that the #=productId# is not getting correctly parsed by Kendo.

View:

@( Html.Kendo().Grid<Web.Models.StudentGradeView>()
    .Name("Students")
    .Columns(columns =>
        {
            columns.Bound(c => c.Id);
            columns.Bound(c => c.Price);
            columns.Bound(c => c.Color);        })
        .ToolBar(toolbar =>
        {
            toolbar.Template( @"
                <span class=""pull-left"">
                        <a class=""btn k-grid-save-changes"" href=""javascript:void(0)""><span class=""k-icon k-update""></span> Save</a>
                        <a class=""btn k-grid-cancel-changes"" href=""javascript:void(0)""><span class=""k-icon k-cancel""></span> Cancel</a>
                </span>"
        })
        .Events(e => e.Edit("onEdit"))        .Editable(editable => editable.Mode(GridEditMode.InCell))
        .Sortable()
        .DataSource(dataSource => dataSource
            .Ajax()
            .Batch(true)
            .Events(events =>
                {
                    events.Error("error_handler");
                })
            .Model(model =>
                {
                    model.Id(m => m.Id);
                })
            .Read(read => read.Action("Product_Read", "Home", new { id = orderId }))
            .Update(update => update.Action("Product_Update", "Home"))
        )
    )

EditorTemplate

@model string

@(
 Html.Kendo().DropDownListFor(m => m)
    .OptionLabel("Select Color")
    .DataTextField("Color")
    .DataValueField("Color")
    .DataSource(dataSource =>
    {
        dataSource.Read("ColorsDropDown_Read", "DropDowns", new { Area = "", id = "#=ProductId#" });
    })
)


Controller

        public ActionResult ColorsDropDown_Read([DataSourceRequest] DataSourceRequest request, string id)
        {
            List<Grade> rVal = new List<Color>();
            rVal = _SystemSettings.AllColors.Where(w => w.ProductId == id)..ToList();         
            return Json(rVal, JsonRequestBehavior.AllowGet);
        }

Thanks!

 

Logan
Top achievements
Rank 1
Veteran
 answered on 20 Aug 2013
1 answer
67 views
Hi,
is there somewhere an example of the ServerSide part of the Imagebrowser using NodeJS(ExpressJS) ?

~Marc
Petur Subev
Telerik team
 answered on 20 Aug 2013
1 answer
286 views
my grid is like this:
.Name(MyGrid)
.Columns(columns =>
{
columns.Bound(p => p.ProductID);
columns.Bound(p => p.ProductName);
columns.Bound(p => p.UnitPrice);
columns.Bound(p => p.UnitsInStock);
})

I can style one row like :

dataBound: function () {
                    $("#MyGrid tbody tr:last").addClass("customClass");
                }
Alexander Valchev
Telerik team
 answered on 20 Aug 2013
3 answers
419 views
I have a Model which I bind to:
    @(Html.Kendo().Grid(Model.AccountSummary.ClientAccountSummaries)

I am trying to add all the Account Currencies for each Client into a each cell.

                                  columns.Bound(e => e.Client).Template(@<text>
                                                        @foreach (var account in item.Client.Accounts)
                                                        {
                                                            Html.Raw(account.Currency);
                                                            <br/>
                                                        }
                                                        
                                                    </text>)
                                            .Title("Type");

The code compiles and the objects are correct, but grid shows [object object] instead of "CDN<br>USD<br>EUR" in each cell. See image.

What am I missing here?


Alexander Popov
Telerik team
 answered on 20 Aug 2013
3 answers
249 views
Recently, the Telerik ASP.Net Ajax released their Q2 with a nice & powerful "Notification" control. This control can be very useful with 3 tier apps using pure Ajax to notify actions that take place on the server or web service. I suggest to consider this control for future development.

..Ben
Sebastian
Telerik team
 answered on 20 Aug 2013
5 answers
328 views
Hi, 

I have a grid working nicely with fairly simple rows and inLine editing enabled.  Everything is working  fine except for a couple of small issues.  Here they are:

  • I insert a row in the grid and fill it in.  Click save.  Row is committed as expected.
  • Without a refresh, I then click the edit button for the same row and attempt to make a change.  Save is clicked again.
  • The row acts as if it's still in "Create" mode and the data is sent to the the Create controller action.  As expected, that fails due to a primary key error of trying to insert the same row again.
  • I think this is incorrect.  It should be sent to the Update/Edit action.
  • Please advise...
Here is the grid code:

    @(Html.Kendo().Grid(Model.TimesheetDetails)
    .Name("TimesheetDetailGrid")
    .TableHtmlAttributes(new { style = "padding:0; margin:0;font-size:smaller;color:green" })
    .Columns(columns =>
    {
        columns.Bound(x => x.Id).Hidden();
        columns.Bound(x => x.TimesheetId).Hidden();
        columns.Bound(x => x.CompanyId).Hidden();
        columns.ForeignKey(p => p.JobCodeId, (System.Collections.IEnumerable)ViewData["JobCodes"], "Id", "JobCodeName")
                            .Title("Job Code")
                            .Width(150)
                            .HeaderHtmlAttributes(new { @class = "GridHeader" });
         
        columns.Bound(x => x.Description)
                            .Width(250)
                            .Title("Description")
                            .HeaderHtmlAttributes(new { @class = "GridHeader" });
         
        columns.Bound(x => x.WorkDate)
                            .Width(65)
                            .Title("Date")
                            .HeaderHtmlAttributes(new { @class = "GridHeader" });
 
        columns.Bound(x => x.StartTime)
                            .Width(55)
                            .Title("Start")
                            .Format("{0:hh:mm}")
                            .HeaderHtmlAttributes(new { @class = "GridHeader" })
                            .HtmlAttributes(new { @class = "StartTime" });
 
        columns.Bound(x => x.EndTime)
                            .Width(55)
                            .Title("End")
                            .Format("{0:hh:mm}")
                            .HeaderHtmlAttributes(new { @class = "GridHeader" })
                            .HtmlAttributes(new { @class = "EndTime" })
                            .ClientFooterTemplate("Hours: ");
 
        columns.Bound(x => x.Duration)
                            .Width(55)
                            .Title("Hours")
                            .HeaderHtmlAttributes(new { @class = "GridHeader" })
                            .ClientFooterTemplate("#=kendo.toString(sum, '0.00') #");
                             
        columns.Command(command => { command.Edit(); command.Destroy(); }).Width(122);
    })
    .ToolBar(toolbar => toolbar.Create())
    .Editable(editable => editable.Mode(GridEditMode.InLine))
    .Pageable(x => x
        .PageSizes(true)
        .PageSizes(new int[] { 2, 3, 4, 5, 10, 25, 100 }))
    .Sortable()
    .Events(events => events.Edit("onEdit"))
    .Events(events => events.Save("onSave"))
    //.Events(events => events.DataBound("gridDataBound"))
    .DataSource(ds => ds
        .Ajax()
        .ServerOperation(true)
        .PageSize(10)
        .Model(m =>
        {
            m.Id(vm => vm.Id);
            m.Field(vm => vm.Id).DefaultValue(Guid.NewGuid()).Editable(false);
            m.Field(vm => vm.TimesheetId).DefaultValue(Model.Id).Editable(false);
            m.Field(vm => vm.CompanyId).DefaultValue(Model.CompanyId).Editable(false);
            m.Field(vm => vm.JobCodeId).DefaultValue(Guid.Empty);
            m.Field(vm => vm.Duration);
             
        })
        .Aggregates(aggregates =>
        {
            aggregates.Add(p => p.Duration).Sum();
        })
        .Read(read => read.Action("TimesheetDetail_Json", "Timesheet", new { Id = Model.Id }))
        .Create(update => update.Action("AddDetailRow_Json", "Timesheet"))
        .Update(update => update.Action("EditDetailRow_Json", "Timesheet"))
        .Destroy(update => update.Action("DeleteDetailRow_Json", "Timesheet"))
    )
)



My other issue is that I cannot get the aggregations to refresh upon editing or inserting a row.  I know that this happens when the datasource is refreshed and I've searched around for some more info.  I tried this as the save event handler for the grid.  No luck.  BTW, the same behavior with or without the e.model.set line.
function onSave(e) {
 
    var dataSource = this.dataSource;
    e.model.one("change", function () {
        dataSource.one("change", function () {
            //alert(dataSource.aggregates().Amount.sum);
        });
        dataSource.fetch();
    });
    e.model.set("Duration", $("#Duration").val());
 
}
I'd appreciate any help.




Vladimir Iliev
Telerik team
 answered on 20 Aug 2013
2 answers
279 views
By default, the tooltip can be shown on hover or always on per the documentation.

If using dataviz with mobile, you don't have hover abilities.  Clicking the point to show the tooltip would be optimal.  Is there anyway to do this?
Bill
Top achievements
Rank 1
 answered on 20 Aug 2013
1 answer
132 views
Hello,

I'm trying to do a foreach inside of a panelbar, lika the code further down. But i keep getting an error Compiler Error Message: CS1593: Delegate 'System.Action' does not take 1 arguments. Some help would be appreciated:)

panelbar.Add().Text("Soprutter")
                .Content(
                @<div>
                    <table class="table-hover">
                        <thead>
                            <tr>
                                <th>Soprutter <a onclick="editGarbageRoute(@Model.ID)" href="#garbageModal" style="display:inline-block;margin-left:5px;" data-toggle="modal" class="tooltips small button icon green" title="Ändra soprutter" ><i class="icon-pencil"></i></a>
                                </th>
                            </tr>
                        </thead>
                        <tbody>
                            @foreach(var item in Model.GarbageRoutes)
                            {
                                <tr>
                                    <td>
                                        @Html.DisplayFor(modelItem => item.Description)
                                    </td>
                                </tr>
                            }
                        </tbody>
                    </table>
                </div>);
Mattias Hermansson
Top achievements
Rank 1
 answered on 20 Aug 2013
1 answer
109 views
Hi,

I've recently used the ThemeBuilder to customize the Metro theme. I only changed a couple items, including the Selected/Hovered states of controls to be Blue instead of the Metro default color.

However, ever since then my Editors do not display the Tool icons. If I can remember properly, these icons were Grey and changing the CSS would not change this. Is there something I missed when applying my ThemeBuilder css? Do I also need to download an image pack from somewhere?

Any help would be much appreciated.

Thanks,
Landon
Alex Gyoshev
Telerik team
 answered on 20 Aug 2013
1 answer
143 views
Hi,

I have tried to add badge on buttons in my layout but failed...
Would you suggest how to do that?

One of the buttons is located in the navbar of the layout. Other buttons are located in the navbar of some of the views.
Thanks.
Alexander Valchev
Telerik team
 answered on 20 Aug 2013
Narrow your results
Selected tags
Tags
+? more
Top users last month
Will
Top achievements
Rank 2
Iron
Motti
Top achievements
Rank 1
Iron
Hester
Top achievements
Rank 1
Iron
Bob
Top achievements
Rank 3
Iron
Iron
Veteran
Thomas
Top achievements
Rank 2
Iron
Want to show your ninja superpower to fellow developers?
Top users last month
Will
Top achievements
Rank 2
Iron
Motti
Top achievements
Rank 1
Iron
Hester
Top achievements
Rank 1
Iron
Bob
Top achievements
Rank 3
Iron
Iron
Veteran
Thomas
Top achievements
Rank 2
Iron
Want to show your ninja superpower to fellow developers?
Want to show your ninja superpower to fellow developers?