【发布时间】:2014-01-01 06:36:42
【问题描述】:
我在网络服务中有一个方法是这样的:
[WebMethod(EnableSession = true)]
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
public location[] getLocation()
{
string companyCode = Convert.ToString(Session["companyCode"]);
//string userID = Convert.ToString(Session["userID"]);
DataTable dt = new DataTable();
//DataSet ds = new DataSet();
List<location> list = new List<location>();
try
{
conn.Open();
SqlCommand cmd = new SqlCommand();
cmd.Connection = conn;
cmd.CommandText = "getLocation";
cmd.Parameters.Clear();
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.AddWithValue("@companyCode", companyCode);
cmd.Parameters.AddWithValue("@status", DBClass.cns_Active);
SqlDataAdapter da = new SqlDataAdapter(cmd);
da.Fill(dt);
conn.Close();
foreach (DataRow dr in dt.Rows)
{
var loc = new location();
loc.ID=Convert.ToInt32(dr["ID"]);
loc.APIAddress = Convert.ToString(dr["APIAddress"]);
loc.PostCode = Convert.ToString(dr["postCode"]);
loc.ShostCode = Convert.ToString(dr["shortCode"]);
loc.latLong=Convert.ToString(dr["latLong"]);
list.Add(loc);
}
}
catch
{
conn.Close();
}
return list.ToArray();
}
location 是一个类
我正在尝试使用此方法从客户端加载网格,代码如下:
function getItems() {
$.ajax({
type: "POST",
url: "../WebService.asmx/getLocation",
data: "{}",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (data) {
for (var i = 0; i < data.d.length; i++) {
$('#gvTrip').append("<tr class='gradeX'><td>" + data.d[i].ID + "</td><td>" + data.d[i].APIAddress + "</td><td>" + data.d[i].PostCode + "</td><td>" + data.d[i].ShostCode + "</td><td>" + data.d[i].latLong + "</td></tr>");
}
},
error: function () {
alert("Error in fetching record");
}
});
}
这里gvTrip是一个asp gridview控件
所以我面临的问题是网格没有加载数据,但数据来自该方法,我已经使用警报进行了检查 请帮忙
【问题讨论】:
-
您有一个 Location 列表,将其作为 jSon 对象返回,然后循环遍历该对象并构建 HTML 表格,而不是使用 GridView。您在正确的轨道上,但不是尝试附加到 GridView,而是附加到普通的 HTML
,您将提供 gvTrip 的 id,这应该可以工作。
是的,但我想在 gridview 中加载。这是不可能的吗?您可能可以遍历您的数组并将其附加到 GridView,毕竟它会呈现一个 HTML 表格。但是,我认为您不应该期望这些数据作为回发的一部分,它只是作为表的一部分在 DOM 中,而不是真正的 GridView 数据集的一部分。所以有可能做到这一点.. 我还在寻找这个。我真的可以使用 webservice 和 javascript 从客户端加载 gridview正如我所说,GridView 仍将呈现为 HTML 表格,因此您可以在客户端向其附加任何内容,但您不应该期望在后面的代码中对这些数据做任何事情,例如,从 asp.net 按钮单击说。
标签: javascript jquery asp.net ajax gridview