用AJAX填充后,在knockout下拉列表中设置选定的值

时间:2017-06-13 19:15:58

标签: c# jquery .net ajax knockout.js

我在页面上有一个下拉列表。我在下拉列表中有敲除数据绑定。

默认情况下,下拉列表中没有任何项目。我有一个可以工作的AJAX调用,并为下拉列表检索正确的项目列表。

在检索项目列表并将其加载到下拉列表后,如何设置下拉列表中的所选项目?

<select class="form-control" data-bind="options: listOfPossibleValues, value: selectedValue, optionsCaption: 'Select a Value'"></select>

 $.ajax({
            type: 'GET',
            dataType: 'json',
            url: url,
            data: {
                someParameter: someParameterValue
            },
            success: function (response) {
                $.each(response, function (index, center) {
                    self.listOfPossibleValues.push(response[index]);
                });
            },
            error: function (xhr, ajaxOptions, thrownError) {
                console.log("There has been an error retrieving the values.");
            }
        });

3 个答案:

答案 0 :(得分:0)

<select class="form-control" data-bind="options: listOfPossibleValues, value: selectedValue, optionsCaption: 'Select a Value'"></select>

 $.ajax({
            type: 'GET',
            dataType: 'json',
            url: url,
            data: {
                someParameter: someParameterValue
            },
            success: function (response) {
                $.each(response, function (index, center) {
                    self.listOfPossibleValues.push(response[index]);
                });
                //set value here
                $(".form-control").val("xyz123");
            },
            error: function (xhr, ajaxOptions, thrownError) {
                console.log("There has been an error retrieving the values.");
            }
        });

答案 1 :(得分:0)

您必须将selectedValue声明为observable并设置如下所示的值:

self.selectedValue = ko.observable();
self.selectedValue("//what ever property value get from business model");

答案 2 :(得分:0)

当您使用data-bind=...value: selectedValue选择绑定到变量的值时,您只需要为其分配一个新值(选定的值):

self.selectedValue('mySelectedValue');

Knockout将为您完成剩下的工作