尝试使用WebMethods使用sql结果填充select。
我可以获取并传递数据,但我注意到格式为[[“”,“”],[“”,“”]而不是[{“”,“”},{“” “”}]。
当我使用$ .each时,我得到单个字符作为select的选项,输出中的每个字符,包括JSON分隔符。
VB
Dim MArray()() As String = New String(sqlDataset.Tables(0).Rows.Count)() {}
Dim i As Integer = 0
For Each rs As DataRow In sqlDataset.Tables(0).Rows
MArray(i) = New String() {rs("suppliername").ToString(), rs("supplierid").ToString()}
i = i + 1
Next
Dim js As JavaScriptSerializer = New JavaScriptSerializer()
Dim sJSON As String = js.Serialize(MArray)
Return sJSON
Jquery的
$(document).ready(function () {
$.ajax({
type: "POST",
url: "SupplierAdmin.aspx/PopulateSupplierSelectDropDownList",
data: "{}",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (msg) {
$("#supplierSelect").empty();
$.each(msg.d, function(name, value) {
$('#supplierSelect').append($('<option>').text(name).attr('value', value));
});
}
});
});
答案 0 :(得分:1)
而不是.each循环,请尝试:
for(var i=0; i < msg.d.length; i++) {
$('#supplierSelect').append($('<option>').text(msg.d[i].name).attr('value', msg.d[i].value));
}
答案 1 :(得分:0)
使用$ .each函数
也可以完成同样的事情$.each(msg.d , function(i){
$('#supplierSelect').append($('<option>').text(msg.d[i].name).attr('value', msg.d[i].value));
}