选择.js而不是从服务器端呈现选项

本文关键字:服务器端 选项 js 选择 | 更新日期: 2023-09-27 18:18:47

使用Selectize.js,我能够从服务器检索数据,但回调上的下拉菜单中没有显示任何内容。也许是数据格式的问题?

在服务器上,我使用system . web . script . serialize . javascriptserializer来序列化一个数据表(c#)并返回JSON对象。

不知道为什么数据没有显示。

代码:

<div class="sandbox">
    <label for="select-movie">Movie:</label>
    <select id="select-movie" class="movies" placeholder="Find a PO..."></select>
</div>
<script class="show">
    $('#select-movie').selectize({
    valueField: 'ID',
    labelField: 'PO',
    searchField: 'PO',
    create: false,
    options: [],
    render: {
        option: function (item, escape) {
            return '<div>' + item.PO + ' ' + escape(item.PO) '</div>';
        }
    },
    load: function (query, callback) {
        if (!query.length) return callback();
        var dataString = JSON.stringify({
        prefixText: query
        });
        $.ajax({
        type: "POST",
        url: "Default.aspx/GetUsers",
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        async: false,
        data: dataString,
        error: function () {
            callback();
        },
        success: function (msg) {
            alert(msg.d);
            callback(msg.d);

        }
        });
    }
    });
</script>  

从服务器返回的数据:

{
    "d":"[
        {
            '"ID'":1,
            '"PO'":'"PO/REQ Number'"
        },
        {
            '"ID'":262,
            '"PO'":'"this po'"
        },
        {
            '"ID'":264,
            '"PO'":'"Test po'"
        },
        {
            '"ID'":267,
            '"PO'":'"Test PO 1'"
        }
    ]"
}

选择.js而不是从服务器端呈现选项

服务器(msg.d)返回的数据是一个String。必须是Array

你应该检查你的Default.aspx/GetUsers方法返回它