选择2;如何加载我从数据库加载一次的数组
Select2; how to load in an array that I load once from the database
我正在加载一个包含以下操作结果的数组:
public ActionResult GetJudges(string q)
{
var judges = new List<Judge>();
using (var con = new SqlConnection(ConfigurationManager.ConnectionStrings["db"].ConnectionString))
{
using (var cmd = con.CreateCommand())
{
cmd.CommandType = CommandType.Text;
cmd.CommandText = "query";
con.Open();
using (var rdr = cmd.ExecuteReader())
{
while (rdr.Read())
{
var judge = default(Judge);
var id = Convert.ToInt32(rdr["ID"]);
var email = Convert.ToString(rdr["Email"]);
var name = Convert.ToString(rdr["Name"]);
var jurisdiction = Convert.ToString(rdr["Jurisdiction"]);
var code= Convert.ToString(rdr["code"]);
if (!judges.Select(x => x.Id).Contains(id))
{
judge = new Judge
{
Id = id,
Email = email,
Name = name,
Code= code
};
judges.Add(judge);
}
else
{
judge = judges.FirstOrDefault(x => x.id == id);
}
judge.Jurisdictions.Add(jurisdiction);
}
}
con.Close();
}
}
return Json(judges, JsonRequestBehavior.AllowGet);
}
我试图将此数组加载到 Select2 元素中,但没有成功。 select2 元素始终为空。这是我用来加载 select2 的 javascript:
var judges = [];
$(document).ready(function () {
$.getJSON('/Home/GetJudges', function (result) {
judges = result;
$(".select2").select2({
placeholder: "Search for a Judge",
data: { results: result, id: "Id", text: "Text" }
});
});
});
谁能告诉我这里缺少什么?
查看 this 示例,了解如何使用 select2。您传递的数据不正确。你的 result
应该包含一个对象数组,这些对象有一个 id
属性 和一个 text
属性,你应该将它作为 [=14] 传递给 select2 =] 直接,而不是将其包装在另一个对象中。
//sample data
var result = [{id: 0, text: 'Judge 1'}, {id: 1, text: 'Judge 2'}];
$(".select2").select2({
placeholder: "Search for a Judge",
data: result
});
我正在加载一个包含以下操作结果的数组:
public ActionResult GetJudges(string q)
{
var judges = new List<Judge>();
using (var con = new SqlConnection(ConfigurationManager.ConnectionStrings["db"].ConnectionString))
{
using (var cmd = con.CreateCommand())
{
cmd.CommandType = CommandType.Text;
cmd.CommandText = "query";
con.Open();
using (var rdr = cmd.ExecuteReader())
{
while (rdr.Read())
{
var judge = default(Judge);
var id = Convert.ToInt32(rdr["ID"]);
var email = Convert.ToString(rdr["Email"]);
var name = Convert.ToString(rdr["Name"]);
var jurisdiction = Convert.ToString(rdr["Jurisdiction"]);
var code= Convert.ToString(rdr["code"]);
if (!judges.Select(x => x.Id).Contains(id))
{
judge = new Judge
{
Id = id,
Email = email,
Name = name,
Code= code
};
judges.Add(judge);
}
else
{
judge = judges.FirstOrDefault(x => x.id == id);
}
judge.Jurisdictions.Add(jurisdiction);
}
}
con.Close();
}
}
return Json(judges, JsonRequestBehavior.AllowGet);
}
我试图将此数组加载到 Select2 元素中,但没有成功。 select2 元素始终为空。这是我用来加载 select2 的 javascript:
var judges = [];
$(document).ready(function () {
$.getJSON('/Home/GetJudges', function (result) {
judges = result;
$(".select2").select2({
placeholder: "Search for a Judge",
data: { results: result, id: "Id", text: "Text" }
});
});
});
谁能告诉我这里缺少什么?
查看 this 示例,了解如何使用 select2。您传递的数据不正确。你的 result
应该包含一个对象数组,这些对象有一个 id
属性 和一个 text
属性,你应该将它作为 [=14] 传递给 select2 =] 直接,而不是将其包装在另一个对象中。
//sample data
var result = [{id: 0, text: 'Judge 1'}, {id: 1, text: 'Judge 2'}];
$(".select2").select2({
placeholder: "Search for a Judge",
data: result
});