树视图具有叶节点checkboxes.I需要验证树形视图如果节点ATLEAST一个被选中并且不大于节点,用户可以选择的specfic(比如3个节点)数量。 注:树视图是一个asp.net树形(而不是AJAX树形视图)
Answer 1:
好了,因为你没有提到你想要什么类型的验证,我会做两个客户端和服务器端。 我TreeView
名为tvTest
首先,增加CustomValidator
你Asp.Net页:
<asp:CustomValidator ID="CustomValidator1" runat="server" ClientValidationFunction="ClientValidate"
ErrorMessage="CustomValidator" Display="Dynamic" OnServerValidate="CustomValidator1_ServerValidate">*</asp:CustomValidator>
注意:不要设置ControlToValidate
属性。
接下来,添加这个脚本(也到你的Asp.Net页)客户端验证:
<script type="text/javascript">
function ClientValidate(source, arguments) {
var treeView = document.getElementById("<%= tvTest.ClientID %>");
var checkBoxes = treeView.getElementsByTagName("input");
var checkedCount = 0;
for (var i = 0; i < checkBoxes.length; i++) {
if (checkBoxes[i].checked) {
checkedCount++;
}
}
if (checkedCount > 0 && checkedCount < 4) {
arguments.IsValid = true;
} else {
arguments.IsValid = false;
}
}
</script>
而在去年,这个添加到您的代码隐藏服务器端验证:
protected void CustomValidator1_ServerValidate(object source, System.Web.UI.WebControls.ServerValidateEventArgs args) {
if (tvTest.CheckedNodes.Count > 0 && tvTest.CheckedNodes.Count < 4) {
args.IsValid = true;
} else {
args.IsValid = false;
}
}
当然,你要改变的节点,用户可以检查的最小和最大数量的限制。
文章来源: Treeview validation