【问题标题】:How to load asp gridview control from client side?如何从客户端加载 asp gridview 控件?
【发布时间】: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


【解决方案1】:

ajax 中的 gvTrip 是一个服务器端控件。所以尝试使用:

$('<%=gvTrip.ClientID %>').append("Your string");

【讨论】:

  • 这真的有用吗?这会将 HTML 附加到服务器端控件中。
猜你喜欢
  • 2010-09-25
  • 2010-11-10
  • 1970-01-01
  • 2012-04-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多