剑道自动完成默认值

Posted

技术标签:

【中文标题】剑道自动完成默认值【英文标题】:Kendo AutoComplete Default Value 【发布时间】:2015-09-20 12:30:12 【问题描述】:

需要已设置的值

我正在使用 Kendo 自动完成功能从列表中选择一个项目。我需要设置文本输入字段的值并使其实际使用列表中的值。

现在我正在将输入字段的文本值设置为表中项目的值,尽管它实际上并没有使用它,就好像您要输入它并单击自动完成的项目一样。

设置默认文本:

IQueryable<StorageLocation> query = (from s in db.StorageLocations.Include("StorageLocationType") select s);
        DefaultStorageLocation = query.Count() != 1 ? "" : query.FirstOrDefault().TitleWithType;

设置文本框的值:

<input type="text" value="<%: Model.DefaultStorageLocation %>" name="StorageLocation" id="StorageLocation" originalname="StorageLocation" placeholder="" class="autoComplete" style="width: 158px;" />

我的剑道自动完成:

$('#StorageLocation' + rowID).kendoAutoComplete(
        dataTextField: 'title',
        dataValueField: 'id',
        minLength: 2,
        autoBind: false,
        select: function (e) 
            var dataItem = this.dataItem(e.item.index());
            $('#StorageLocationID' + rowID).val(dataItem.id);
        ,
        dataSource: 
            type: 'json',
            serverFiltering: true,
            transport: 
                read: 
                    url: function (opt) 
                        return '/Autocomplete/StorageLocations?searchText=' + opt.filter.filters[0].value;
                    
                
            
        
    );

简而言之。

我正在设置文本输入的值 需要它来实际使用该值,就好像它是从自动完成中选择的一样

【问题讨论】:

【参考方案1】:

当只有一个值时,您似乎正在尝试自动选择第一个值。我认为suggest 属性会满足您的需求:http://docs.telerik.com/kendo-ui/api/javascript/ui/autocomplete#configuration-suggest

或者,尝试value 方法:http://docs.telerik.com/kendo-ui/api/javascript/ui/autocomplete#methods-value

【讨论】:

我去尝试了建议。它仍然要求用户在建议其他内容之前输入一些内容。 听起来不错;看起来我读错了文档。 value 方法呢? 这可以很好地填充文本,但仍然不像是从自动完成列表中选择的那样。我正在使用的验证不会将其视为自动完成列表中的值。【参考方案2】:

控制器 searchResult 搜索查询

storageLocation = (DefaultWarehouseForIA && !StorageLocation.IsNull()) ? StorageLocation.TitleWithType : "",
defaultStorageLocationID = (DefaultWarehouseForIA && DefaultStorageLocationID.ToLong() > 0) ? DefaultStorageLocationID : null

JS 值在另一个文本字段被填充时被填充。

select: function (e) 
    var dataItem = this.dataItem(e.item.index());
    $('#StorageLocation' + rowID).val(dataItem.storageLocation);
    $('#StorageLocationID' + rowID).val(dataItem.defaultStorageLocationID);

此时我已经想通了。让它工作。

所以现在在填充另一个文本字段时会自动填充该值。 这里的解释不太好。但是,嘿。

【讨论】:

以上是关于剑道自动完成默认值的主要内容,如果未能解决你的问题,请参考以下文章

剑道自动完成配置

如何在 MVC 剑道树列表编辑器中实现剑道自动完成下拉菜单

剑道自动完成搜索()方法不起作用

剑道自动完成数据源显示未找到数据

生成自动完成功能 Angular 和 Jquery

Angular-Kendo 在更改时自动完成所选值