使用Selectize.js,我能够从服务器检索数据,但回调下拉列表中没有任何内容。也许这是数据的格式?
在服务器上,我使用System.Web.Script.Serialization.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\"
}
]"
}
答案 0 :(得分:0)
从服务器(msg.d
)返回的数据是String
。它必须是Array
。
您应该检查Default.aspx/GetUsers
方法以将其返回。