Amanda
Amanda

Reputation: 159

How to configure Kendo Dropdownlist to work with Grid popup editor template

I've been struggling with the Kendo dropdownlist for 2 days now and just can't seem to get it configured correctly.

How do I get the Kendo Dropdownlist to show the current item of the @Model? This is my code:

@Html.TextBoxFor(model => model.ShortDescription, new { @class="wide200;" })

@(Html.Kendo().DropDownList()
        .Name("importance")
        .HtmlAttributes(new { style = "width: 250px" })
        .DataTextField("Name")
        .DataValueField("ID")
        .DataSource(source => {
            source.Read(read =>
            {
                read.Action("GetImportanceList", "Home");
            })
            .ServerFiltering(true);
        })
        .SelectedIndex(0)
)

And in my controller:

public ActionResult GetImportanceList()
    {
        GenericRepository<Importance> _repository = new GenericRepository<Importance>(_context);
        IEnumerable<ImportanceViewModel> list = _repository.Get().ConvertToViewModelList();
        return Json(list, JsonRequestBehavior.AllowGet);
    }

Problem is with SelectedIndex(0) which is set to the first item. How can I set it to whatever is in the model? It's very simple to do for the textbox (first line in the code): model => model.ShortDescription. But how does this work for the dropdownlist?

I don't just want to set it upon the showing of the editor, but also want the grid to know what the new selection is after I click the Update button.

Note that this is in a custom template for the grid popup editor.

Upvotes: 0

Views: 3022

Answers (2)

Amanda
Amanda

Reputation: 159

I asked this question to Telerik. Apparently the Name mustn't be assigned.

Upvotes: 1

Jeet Bhatt
Jeet Bhatt

Reputation: 778

Try this,

You have to pass DropDownListId in model and ListItems.

@(Html.Kendo().DropDownListFor(m=>m.DropDownListId)
        .Name("importance")
        .HtmlAttributes(new { style = "width: 250px" })
        .DataTextField("Name")
        .DataValueField("ID")
        .DataSource(source => {
            source.Read(read =>
            {
                read.Action("GetImportanceList", "Home");
            })
            .ServerFiltering(true);
        })
        .SelectedIndex(0)
)

Upvotes: 1

Related Questions