Tom S
Tom S

Reputation: 227

how to insert value into the kendo combo box

If I have a kendo combobox that contains more than 1 value I would like to insert "-ALL- as the DataTextField and "9999" as the DataValueField. Currently, if I have only a single record I use the DataBound event to test for that and if it = 1 then I load a grid based on this value, but if the length > 1 then I would like to add the -All-. I don't understand the insert as described by telerik.

        @(Html.Kendo().ComboBox()
      .Name("FAList")
      .Placeholder("Select Fiscal Agency...")
      .DataTextField("Text")
      .DataValueField("Value")
      .HtmlAttributes(new { style = "width:50%;" })
      .Filter("startswith")
      .AutoBind(true)
      .MinLength(3)
      .DataSource(source =>
      {
          source.Read(read =>
          {
              read.Action("GetUserAgencyList", "Entities");
          })
          .ServerFiltering(true);
      })
          .Events(e => e
            .Change("onFAChange")
            .DataBound("onFADataBound")
            )
)

and then the function for binding the data

        function onFADataBound(e) {
    // the agency list dropdown
    var combobox = $("#FAList").data("kendoComboBox");
    // if there is only a single record then set that in the combobox and load the grid based on that
    if (e.sender.dataSource.view().length == 1) {
        e.sender.select(0);
        var filter = this.value();
        $.get('/City/CityGrid_Read', { id: filter }, function (data) {
            var grid = $("#FollowUpGrid").data("kendoGrid");
            grid.dataSource.read();
        })
    }
    if (e.sender.dataSource.view().length > 1) {

    }
} 

Upvotes: 1

Views: 1102

Answers (1)

Answered at: Adding an item dynamically in kendo combobox

Combining that with your code:

if (e.sender.dataSource.view().length > 1) {   

$("#FAList").data("kendoComboBox").dataSource.add({ Text: "-All-",
Value: "0" }); 

}

Something like that! I hope you get this implemented :)

An alternative could be to change the Placeholder text in this event method where length > 1

as per example on: http://www.telerik.com/forums/placeholder-text

$("#FAList").data("kendoComboBox").input.attr("placeholder", "-All-");

Upvotes: 1

Related Questions