Telerik Forums
UI for ASP.NET MVC Forum
0 answers
1 view

I have a checkbox in a grid that I want to conditionally disable. What I have below technically hides the checkbox (haven't figured out how to conditionally 'disable') but you can still click in the box and the checkbox will appear even if it does not meet the condition:

@(Html.Kendo().Grid<SomeUI.Areas.UVL.Models.SomePOModel> ().Name("SomePOgrid") .Columns(columns => { columns.Bound(p => p.forceClose).Title("Force Close") .ClientTemplate("#if(status == 'Pending'){# <input id='forceClose' value='#=forceClose#' class='k-checkbox' type='checkbox' checked='checked'/> #}#") .Width(170).HtmlAttributes(new { style = "text-align:center;" });

})

Wondering if you have a better or solution or if someone can explain what I am missing. Thanks.
Sabri
Top achievements
Rank 1
 asked on 04 Aug 2021
1 answer
3 views

Scenario - I'm Yasen Petrov and I have to create groups of Bulgarian football players (with a variable number of players). The number of players is huge, so I have to use server filtering. I already have the name of the groups, but no player has been assigned to them. I have to be able to add the players, move them up or down in the list, remove them if needed.

Each player has a Guid and a Name. Some examples:

{d912f311-5c6a-450b-886e-8b4effbd6828, Dimitar Berbatov}
{ec621b1e-3a13-4a8c-bcad-78eddae91752, Borislav Mihaylov}
{440eefce-c4c3-44d5-9320-f07fa84d5997, Krasimir Balakov}

When pressing Save, the list of Guids must be sent to the server.

I think a batch editing grid with a GridEditMode.PopUp mode should do the trick. It will have a single column (Name).

I use this DropDownList in another view:

@(Html.Kendo().DropDownListFor( m => m.PlayerId ).MinLength( 3).EnforceMinLength(true).Delay(500).OptionLabel( "Search by player name" )
                                   .DataTextField( "Name").DataValueField( "Id" ).Filter( FilterType.Contains).AutoBind(false)
                                   .DataSource(source => {
                                      source.Read(read =>
                                      {
                                         read.Action( "SearchPlayer", "PlayerGroups" ).Data( "additionalData" ).Type( HttpVerbs.Post);
                                      }).ServerFiltering(true);
                                   }))


How would I go about doing this? I looked for examples of EditorTemplateName, but I haven't been able to find something useful for my case.

Could anyone provide some guidance? Thank you!

   
Anton Mironov
Telerik team
 answered on 04 Aug 2021
1 answer
1 view

Hi all.

I'm looking for a way to alter the "Scrollable" setting via jQuery.

Basically, I want to give the user the ability to toggle the grid between a fixed size (say 200px height with scrolling) and a un-set height, allowing the grid to show all rows without scrolling.

I have this set in the grid definition:

.Scrollable(s => s.Enabled(true).Virtual(true))

which yields the first requirement - a scrollable grid of fixed height.

When the user clicks a "toggle" button, I'd like to swap the s.Enabled(true) to s.Enabled(false) and back and forth as they click the toggle button.

Is there any way to do this?

Thanks

Jeff

Ivan Danchev
Telerik team
 answered on 04 Aug 2021
0 answers
1 view

I want to update a cell value (column Score) when the user selects another column value from the dropdownlist (column RatingLevel) in a grid.   Column Score is not editable

 

    @(Html.Kendo().Grid<NERDS.ViewModels.SPEEOYRatingEntryViewModel>()
                                .Name("grdRatingElementsList")
                                .Selectable(s => s.Mode(GridSelectionMode.Single))
                                .Columns(columns =>
                                {
                                    columns.Bound(c => c.RatingElementName).Title("Element")
                                                                           .HtmlAttributes(new { @Style = "font-weight: bold" });
                                    columns.Bound(c => c.CriticalOrNonCritical).Title("Critical / Non-Critical").Width(90);
                                    columns.Bound(c => c.Weightage).Title("Weightage (%)").Width(90);
                        //columns.Bound(c => c.R).Title("FY");
                        //columns.Bound(c => c.RatingLevelId).Title("Rating Level").ClientTemplate("#=RatingLevelId# #=RatingLevelName#");
                        columns.Bound(c => c.RatingLevel.RatingLevelName).EditorTemplateName("RatingLevelEditor").Title("Rating Level")
                                                                         .HtmlAttributes(new { @Style = "color: indigo" })
                                                                         .ClientTemplate("#=templateCell(data)#").Width(175);
                        //columns.Bound(c => c.RatingLevelId).Title("Rating Level").ClientTemplate("#=RatingLevelName#");
                        columns.Bound(c => c.Score).Title("Element Score").Width(90)
                                                   .HtmlAttributes(new { @Style = "font-weight: bold" });
                                })
                                //.AutoBind(true)
                                //.Resizable(resize => resize.Columns(true))
                                .Editable(editable => editable.Mode(GridEditMode.InCell))
                                .DataSource(dataSource => dataSource
                                .Ajax()                                
                                .Events(e => e.Change("onLevelChange"))
                                .Model(model =>
                                {
                                    model.Id(f => f.RatingElementName);
                                    model.Field(f => f.RatingElementName).Editable(false);
                                    model.Field(f => f.CriticalOrNonCritical).Editable(false);
                                    model.Field(f => f.Weightage).Editable(false);
                        //model.Field(f => f.RatingLevelId).DefaultValue();
                        model.Field(f => f.Score).Editable(false);

                                })
                                .Read(read => read.Action("GetRatingElements", "SPEEOYRatingEntry"))

                                )
    )

Here is the function where I am trying to set...

    function onLevelChange(e) {
        gridObject = $("#grdRatingElementsList").data("kendoGrid");
        var selectedItems = $.map(gridObject.select(), function (item) {
            return $(item);
        });

        var dataItems = gridObject.dataItems();

        selectedItems.forEach(function (selectedItem) {
            dataItems[selectedItem.index()].Score = 50;  This works if I make the column Score editable but that's not an option!
        });

    }

 

Please need help!

 

Timothy Wine
Top achievements
Rank 1
 asked on 03 Aug 2021
0 answers
4 views

I'm using a Kendo MVC grid with columns defined as follows:

columns.Bound(p => p.PoolId).Title("Pool").Hidden(true);

columns.Bound(p => p.Client).Title("Client").HtmlAttributes(new { @style = "min-width:120px;" })
    .ClientGroupFooterTemplate("<div class=aright>#:value# Totals:</div>");

With a group on the "PoolId" field:

...

.Group(group => group.Add(g => g.PoolId))

...

Excel export works when I don't reference any Kendo values in the ClientGroupFooterTemplate (or don't include the footer template at all) but just silently fails (doesn't generate a file) when I try to reference any Kendo value using '#='

For example, the following works:

columns.Bound(p => p.Client).Title("Client").HtmlAttributes(new { @style = "min-width:120px;" })
    .ClientGroupFooterTemplate("<div class=aright>Totals:</div>");

but the following is another example of a footer that fails:

columns.Bound(p => p.Client).Title("Client").HtmlAttributes(new { @style = "min-width:120px;" })
    .ClientGroupFooterTemplate("<div class=aright>#= kendo.format('{0:C}', aggregates.PoolContributions.min) #</div>");
How do I get the Excel export working with ClientGroupFooterTemplate?
Greg
Top achievements
Rank 1
 updated question on 03 Aug 2021
1 answer
8 views

Let us say the a wizard has 5 steps.
Where user goes from step 2 -> step 3, I want to do some activity.
Currently I use e.step.options.index inside onSelect  method to do that.


function onSelect(e) {
    if (e.step.options.index == 3) {
       //do something
    }
}

 

The problem is the "//do something" is also executed when user comes to step 3 from step 4 (step 4 -> step 3).
I do NOT want this to happen. I want to prevent this from happening.

How do I do it?

How do I know which step the user came from?

Ivan Danchev
Telerik team
 answered on 03 Aug 2021
0 answers
1 view

Hi,

We have an issue with timing that we do not want to fix with a timeout. We are doing our best to get things fast, so a timeout is not a option. On the other hand we don't know how to fix it without a timeout.

We have 2 API calls. One to get the columns and one to get the grid. The columns are user defined and stored in a database.

Initial the standard header is loaded. Then the columns are hided by the hideColumn() method. Then the data is loaded.

We will then have the following issue:

We hope we can solve the issue with you.

Roel

 

Roel
Top achievements
Rank 1
Veteran
 asked on 03 Aug 2021
1 answer
9 views

I am building a wizard using Kendo asp.net mvc Wizard control.

I was wondering if there is a way to wait for an ajax response before proceeding to next step when required.

Eg: The wizard allows the user to add a user for the organization. One of the steps in between lets user choose a department, or create new one. If the user opts to create a new department,  I call an ajax request which creates a department. All good till now.

However, I want to confirm the creation of the new department before user is shown the next step. If the department record creation is successful, next step is loaded. If not, the user stays in the same step.

Is this possible

Eyup
Telerik team
 answered on 03 Aug 2021
1 answer
35 views

TextArea control does not take enter & show it properly in Google chrome, Mozila & Edge browser. It works properly only in IE. 

Can you please help us how it can work same for all the browsers.

 

 
Ashis
Top achievements
Rank 1
 updated question on 02 Aug 2021
1 answer
10 views

I am trying to modify an existing grid control and replace the editor for one of the columns with custom HTML. Currently, the column displays time and we use a combobox as the editor. To make this somewhat usable, we populate the combobox with times in 15-minute increments rather than 1-minute. I want to replace the combobox with a time-picker but unfortunately we are tied to an old version of the Telerik library that doesn't support the modern component type. Instead, I would like to use the HTML5 picker. How do I accomplish that using the editor template property?

Btw, I am very much a novice with regards to this UI framework so my question might have been answered in the documentation somewhere but I haven't been able to find it so my apologies if that's the case.

Ivan Danchev
Telerik team
 answered on 29 Jul 2021
Top users last month
Matthias
Top achievements
Rank 4
Bronze
Iron
Iron
Psyduck
Top achievements
Rank 4
Bronze
Bronze
Iron
Jeffrey
Top achievements
Rank 2
Iron
Veteran
Iron
Thomas
Top achievements
Rank 1
Iron
Vedad
Top achievements
Rank 1
Iron
Iron
Veteran