通过javascript访问checkboxlist文本

时间:2011-07-16 20:08:30

标签: asp.net checkboxlist

我有一个复选框列表我已经将一些文档名称绑定到它的文本字段。现在我只需找到文本包含.pdf扩展名的复选框,并在单个复选框中单击它们。写下面的javascript,但它对我不起作用

function CheckAllPDF() {
            var checkBoxList = document.getElementById("<%= cblFiles.ClientID %>");
            var checkBoxes = checkBoxList.getElementsByTagName("input");

                for (i = 0; i < checkBoxes.length; i++) {
                    var string = checkBoxes[i].parentNode.getElementsByTagName('label').innerHTML;
                    var match = string.indexOf(".pdf");

                    if (match != -1) {
                        checkBoxes[i].checked = true;
                    }
                    else {
                        checkBoxes[i].checked = false;
                    }
                } 

有人可以帮忙吗?

1 个答案:

答案 0 :(得分:0)

当您在页面中放置一个asp.net复选框列表时,它会被转换为类型为checkbox的输入列表,因此您需要访问每个控件并进行检查,以便您的javascript代码应如下所示:

        //Get the main id of the asp.net check box list
        var checkboxId = '<%=  CheckBoxList1.ClientID %>';

        //Loop on all generated input check boxes where the count function determine the number of generated checkboxes
        for (var i = 0; i < <%=  Count() %>; i++) {
        //Append the count on the main asp.net check box id the value ('_'+i)
            var checkBox = document.getElementById(checkboxId + '_' + i);
            var checkBoxValue = checkBox.value;

            var match = checkBoxValue.indexOf(".pdf");
            if (match != -1) {
                checkBox.checked = true;
            }
            else {
                checkBox.checked = false;
            }
        }

在后面的代码中写入count函数如下:

public int Count()
    {
        return CheckBoxList1.Items.Count;
    }