Telerik Forums
Kendo UI for jQuery Forum
1 answer
396 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
75 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
303 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
464 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
258 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
357 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
300 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
140 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
153 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
156 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
Grid
General Discussions
Charts
Data Source
Scheduler
DropDownList
TreeView
MVVM
Editor
Window
DatePicker
Spreadsheet
Upload
ListView (Mobile)
ComboBox
TabStrip
MultiSelect
AutoComplete
ListView
Menu
Templates
Gantt
Validation
TreeList
Diagram
NumericTextBox
Splitter
PanelBar
Application
Map
Drag and Drop
ToolTip
Calendar
PivotGrid
ScrollView (Mobile)
Toolbar
TabStrip (Mobile)
Slider
Button (Mobile)
Filter
SPA
Drawing API
Drawer (Mobile)
Globalization
LinearGauge
Sortable
ModalView
Hierarchical Data Source
Button
FileManager
MaskedTextBox
View
Form
NavBar
Notification
Switch (Mobile)
SplitView
ListBox
DropDownTree
PDFViewer
Sparkline
ActionSheet
TileLayout
PopOver (Mobile)
TreeMap
ButtonGroup
ColorPicker
Pager
Styling
MultiColumnComboBox
Dialog
Chat
DateRangePicker
Checkbox
Timeline
Drawer
DateInput
ProgressBar
MediaPlayer
ImageEditor
TextBox
OrgChart
Effects
Accessibility
PivotGridV2
ScrollView
BulletChart
Licensing
QRCode
ResponsivePanel
Switch
Wizard
CheckBoxGroup
TextArea
Barcode
Breadcrumb
Collapsible
Localization
MultiViewCalendar
Touch
RadioButton
Stepper
Card
ExpansionPanel
Rating
RadioGroup
Badge
Captcha
Heatmap
AppBar
Loader
Security
TaskBoard
Popover
DockManager
FloatingActionButton
CircularGauge
ColorGradient
ColorPalette
DropDownButton
TimeDurationPicker
ToggleButton
TimePicker
BottomNavigation
Ripple
SkeletonContainer
Avatar
Circular ProgressBar
FlatColorPicker
SplitButton
Signature
Chip
ChipList
VS Code Extension
AIPrompt
PropertyGrid
Sankey
Chart Wizard
OTP Input
SpeechToTextButton
InlineAIPrompt
StockChart
ContextMenu
DateTimePicker
RadialGauge
ArcGauge
AICodingAssistant
+? more
Top users last month
Edmond
Top achievements
Rank 1
Iron
fabrizio
Top achievements
Rank 2
Iron
Veteran
RobMarz
Top achievements
Rank 2
Iron
Fakhrul
Top achievements
Rank 1
Iron
Tejas
Top achievements
Rank 2
Iron
Iron
Iron
Want to show your ninja superpower to fellow developers?
Top users last month
Edmond
Top achievements
Rank 1
Iron
fabrizio
Top achievements
Rank 2
Iron
Veteran
RobMarz
Top achievements
Rank 2
Iron
Fakhrul
Top achievements
Rank 1
Iron
Tejas
Top achievements
Rank 2
Iron
Iron
Iron
Want to show your ninja superpower to fellow developers?
Want to show your ninja superpower to fellow developers?