用jquery填充gridview

时间:2011-08-25 19:11:25

标签: jquery asp.net

我可以使用像

这样的jquery成功填充gridview
<asp:GridView ID="NamesGridView" runat="server" ShowHeaderWhenEmpty="True" >
</asp:GridView>

<script type="text/javascript" 

src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js">
</script>
<script type="text/javascript">
  function BindGridView() {
     $.ajax({
          type: "POST",
          url: "Default.aspx/GetNames",
          data: "{}",
          contentType: "application/json",
          dataType: "json",
          success: function (data) {
         for (var i = 0; i < data.d.length; i++) {
                $("#NamesGridView").append("<tr><td>" + data.d[i].FirstName + 
                                            "</td><td>" + data.d[i].Age + "</td></tr>");
             }
           }
          })
      }
</script>


    [WebMethod]
public static Names[] GetNames()
{
  List<Names> list = new List<Names>();
  DataTable dt = DataStore.GetDataTable();
  foreach (DataRow row in dt.Rows)
   {
      Names _names = new Names();
      _names.FirstName = row["Name"].ToString();
      _names.Age = row["age"].ToString();

      list.Add(_names);
   }
  return list.ToArray();
}

使用上面的代码我可以使用jquery填充gridview但是如果我的gridview有pager行,那么我认为我的代码可能无法正常工作,因为我的代码总是在gridview的末尾添加一个表行,如果pager在底部那么我怎样才能在寻呼机之间追加行?我的意思是在寻呼机行之前?

我不能只返回像返回列表而不是返回列表的列表.ToArray();

2 个答案:

答案 0 :(得分:1)

我认为你采取了一种略微倒退的方法。 jQuery没有关于GridView的概念,这是一个asp.net概念。由于这个任何GridView功能,你尝试使用jQuery重现可能相当困难。

GridView控件是服务器端控件这一事实意味着您可以在将其发送到客户端之前使用必要的数据填充它,这使得不必担心使用jQuery进行ajax调用。只需立即将数据发送到客户端即可。如果你这样做,你将不必担心用jQuery重新发明轮子。

答案 1 :(得分:1)

我同意你打算以不寻常的方式绑定gridview,但要回答你在寻呼机之前插入的问题:

$("#NamesGridView tr:last").insertBefore( ... )