这是一个ascx页面,代码在aspx中。它将显示多个数据列表。如何通过JavaScript获取页面中数据列表的个数?
<asp:DataList ID="TF_DataList" runat="server" RepeatDirection="Vertical" OnItemCreated="TF_Datalist_ItemCreated">
<ItemTemplate>
<table style="text-align:left;">
<tr>
<td valign="top" align="left" nowrap="nowrap">
<asp:RadioButton ID="lbTrue" runat="server" GroupName="ans" Text="T" onclick="Radcheck();"
/>
<asp:RadioButton ID="lbFalse" runat="server" GroupName="ans" Text="F" onclick="Radcheck();"
/>
</td>
<td>
</td>
<td runat="server" id="AnswerContentTD" style="text-align: left">
<asp:Label ID="lblAnswerText" runat="server" Text='<%# Eval("AnswerText")%>'>
</asp:Label>
</td>
</tr>
</table>
</ItemTemplate>
<ItemStyle HorizontalAlign="Left">
</ItemStyle>
</asp:DataList>
最佳答案
你能做的最好的就是解决这个问题。为页面中的每个数据列表提供一个 CssClass="mydatalist"
。请记住这些事情。
- 所有的
asp:DataList
都必须有这个CssClass
- 只有
asp:DataList
必须有这个CssClass
Javascript 实现。
function FindDataLists(){
var datalists = document.getElementsByClassName("mydatalist");
return datalists ? datalists.length : 0;
}
// fallback for LTE IE8
if (!document.getElementsByClassName) {
document.getElementsByClassName = function (className, parentElement) {
if (Prototype.BrowserFeatures.XPath) {
var q = ".//*[contains(concat(' ', @class, ' '), ' " + className + " ')]";
return document._getElementsByXPath(q, parentElement);
} else {
var children = ($(parentElement) || document.body).getElementsByTagName('*');
var elements = [],
child;
for (var i = 0, length = children.length; i < length; i++) {
child = children[i];
if (Element.hasClassName(child, className)) elements.push(Element.extend(child));
}
return elements;
}
};
}
如果你正在使用 jQuery
function FindDataLists(){
var datalists = document.getElementsByClassName("mydatalist");
return $(".").length;
}
关于javascript - 如何用JavaScript判断页面中有多少数据列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6688849/