【发布时间】:2016-01-14 10:04:35
【问题描述】:
我有这段代码,我用它来填写我网站上的下拉框。它从数据库中提取一些部门,然后应该将部门的 ID 作为选项值,然后将部门名称作为选项“名称”(它显示的名称)
/**
* This function is Run when creating the dropdown to choose a department
* when creating a new activity.
*/
function CreateNewActivityDepartmentDropdown() {
$.getJSON("http://localhost/GetDepartmentsForDropdown", function (data) {
var object = $.parseJSON(data);
var dropdown = document.getElementById("new-activity-modal-department-dropdown");
for (var department in object) {
if (object.hasOwnProperty(department)) {
var array = department.split(',');
var option = document.createElement("option");
option.id = array[0];
option.innerHTML = array[1];
dropdown.add(option);
}
}
});
}
对象中确实包含正确的数据。我用谷歌浏览器调试器检查了它。数据由id,department 字符串组成,在我的for循环中,我尝试拆分我得到的字符串,但首先每个选项的值似乎只是一个增量值(0-n)而不是我拥有的id(1 -12) 并且选项文本是“未定义”。
果然,当我调试时,我发现 ID 和 Text 似乎不存在。我在这里想念什么?在 JavaScript 开发中还是相当新的 :)
编辑
添加了console.log(data, object)的输出
["1,Commercial","2,Economy","3,Technical Dept.","4,IT","5,Flight Op","6,Legal","7,Ground Op","8,BDO","9,Administration","10,Training","11,Passenger Service","12,Cabin"] Array[12]
编辑 2
数据对象是从网络服务接收的。 Webservice 是用 C# 编写的,我用来获取它的代码如下:
public static List<String> GetDepartmentDropdownList()
{
List<String> departments = new List<String>();
using (SqlConnection conn = GetSqlConnection())
{
using (SqlCommand cmd = new SqlCommand())
{
cmd.CommandText = "SELECT * FROM dbo.Department WHERE is_used != 0";
cmd.CommandType = CommandType.Text;
cmd.Connection = conn;
conn.Open();
using (SqlDataReader reader = cmd.ExecuteReader())
{
while (reader.Read())
{
Int32 id = reader.GetInt32(0);
String department = id + "," + reader.GetString(1);
departments.Add(department);
}
}
}
}
return departments;
}
这就是网站所说的:
public String GetDepartmentsForDropdown()
{
List<String> departments = Facade.GetDepartmentDropdownList();
return JsonConvert.SerializeObject(departments);
}
【问题讨论】:
-
console.log(data, object),告诉我们你应该使用什么数据。 -
@deceze 给你,添加到主帖。 :)
-
@SimonH — 否。属性名称被插入到上一行的
department变量中。 -
你为什么首先用逗号连接而不是使用像样的数组/对象结构?!
-
@deceze 没有理由不高兴。我来这里寻求帮助,不要被告知我错了多少,也没有得到帮助。抱歉,如果这看起来很激进。
标签: javascript c# web-services