如何在javascript中计算gridview中的行数?

时间:2011-08-25 13:56:09

标签: javascript asp.net gridview

正如问题所说,我希望通过JS计算gridview中的行数。我正在按照它的方式进行here,但这不是正确的。

我也尝试过不同的方式:

 1. var rowscount = document.getElementByID('<%=Gridview1.ClientID%>').rows.length; 
 2. var rowscount = document.getElementByID("<%=Gridview1.ClientID%>").rows.length; 
 3. var rowscount = document.getElementByID('<%#Gridview1.ClientID%>').rows.length;
 4. var rowscount = document.getElementByID("<%#Gridview1.ClientID%>").rows.length;    
 5. var rowscount = document.getElementByID("Gridview1.ClientID").rows.length;
 6. var rowscount = document.getElementByID("Gridview1").rows.length;  

更新:忘记提及:我的gridview位于updatepanel内。那会有什么不同吗? 什么是正确的陈述?

7 个答案:

答案 0 :(得分:6)

如果要从服务器获取行数,可采用以下方式:

var rowsCount = <%=GridView1.Rows.Count %>

也可以从代码隐藏中将数据发送到JavaScript。

答案 1 :(得分:2)

DataTable dt = //configure datasource here 
GridView1.DataSource = dt;
GridView1.DataBind();
HiddenField1.value = GridView1.Rows.Count.ToString();

var  count = document.getElementById('HiddenField1');

alert(count.value);

这似乎适用于this论坛帖子中的某人。

答案 2 :(得分:2)

var GridId = "<%=Questionsedit.ClientID %>";            
var grid = document.getElementById(GridId);
rowscount = grid.rows.length;

答案 3 :(得分:1)

您可以为gridview设置RowStyle.CssClass属性,并使用jQuery对它们进行计数。

<asp:GridView ID="GridView1" runat="server" AllowPaging="True" ...>
   <RowStyle CssClass="gridrow" />
</asp:GridView>

这将呈现具有指定类的网格行。

<tr class="gridrow">
  <td>row data here</td>
</tr>

然后,您可以使用类选择器

计算行数
var rowscount = $(".gridrow").length;

答案 4 :(得分:0)

试试这个:

var rowscount = $("#<%=GridView1.ClientID %> tr").length;

或参见:
How to count the rows in a gridview in asp.net using jQuery

答案 5 :(得分:0)

找到原因:因为网格包含在内容页面中,所以javascript必须包含在表单标记下。它运行良好!感谢大家的投入!!

答案 6 :(得分:0)

我们可以简化,

var gridViewRowCount = document.getElementById("<%= GridView1.ClientID %>").rows.length;
alert(gridViewRowCount);