正如问题所说,我希望通过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内。那会有什么不同吗? 什么是正确的陈述?
答案 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);