如何获取Repeater内的Checkbox的Id

时间:2010-01-08 12:00:15

标签: c# asp.net javascript checkbox repeater

我有一个转发器,我把一个Checkbox和上面的rapeator有一个HTML复选框,用于检查/取消选中使用客户端javascript在转发器内的复选框。 以下是我的代码: 用于检查/取消选中的JavaScript:

<script type="text/javascript">
    function selectAll() {

        for (i = 0; i < document.all.length; i++) {
            alert("Working");
            if (document.all[i].type == 'checkbox') {
                if (document.getElementById(cbSelectAll).Checked = true) {
                    //document.all[i].Checked = false;
                } else {
                    document.all[i].Checked = true;
                }
            }
        }
    }
</script>

转发器的HTML代码:

<div id="hdPropertyList" runat="server">
    <table border="0" cellpadding="0" cellspacing="0" class="navigation" width="100%">
        <tr>
            <td>
                <input type="checkbox" id="cbSelectAll" onchange="selectAll()" />
                <asp:Button runat="server" ID="btnContactAll" Text="Contact All" />
            </td>
            <td id="tdOrderBy" runat="server">
            </td>
            <td>
                <asp:Label ID="lblPage" runat="server" CssClass="pageList"></asp:Label>
            </td>
        </tr>
    </table>
</div>
<div class="boxleft SearchFeaturedlist" style="display: none">
    <h2>
        Featured Properties</h2>
</div>
<asp:Repeater ID="rptPropertyList" runat="server" EnableViewState="false" OnItemDataBound="rptPropertyList_ItemDataBound"
    OnLoad="rptPropertyList_Load">
    <ItemTemplate>
        <table id="propertyTable" runat="server" enableviewstate="false">
            <tr id="tbrLabel" runat="server" enableviewstate="false">
                <td id="tbcLabel" colspan="3" runat="server" enableviewstate="false">
                </td>
            </tr>
            <tr id="tbrTitle" runat="server" enableviewstate="false">
                <td id="tbcTitle" runat="server" enableviewstate="false">
                    <asp:CheckBox ID="ChkSelect" runat="server" /><span id="spnSelect" runat="server"></span>
                </td>
            </tr>
        </table>
        <div id="divAds" runat="server" visible="false" enableviewstate="false" style="width: 100%;
            overflow: hidden">
        </div>
    </ItemTemplate>
</asp:Repeater>

请在这方面帮助我。 在此先感谢。

2 个答案:

答案 0 :(得分:2)

转发器的ID将通过它的ClientID属性提供。

真的,你想要问你是否需要这个。为什么不将转发器放在命名div中,然后只需找到其中包含复选框类型的所有输入元素(getElementsByTagName会对此有帮助。)

使用像mootools或jQuery这样的js插件库,您将能够使用CSS选择器,这将使您的任务更加轻松。

这是mootools的例子: -

function selectAllOrNone() 
{
    var myNewValue = $('selectall').innerText == "All" ? "None" : "All";
    var myCheckers = $$('input[type=checkbox]');

    $('selectall').innerText = myNewValue;

    myCheckers.each(
        function(e) {
            e.checked = (myNewValue == "None");
        }
    );
}

答案 1 :(得分:1)

我使用Jquery得到了答案。我只使用HTML复选框来检查取消选中我的Asp.net页面上的所有复选框。

<script type="text/javascript">
$(document).ready(function() {
    $('td.title_listing :checkbox').change(function() {
        $('#cbSelectAll').attr('checked', false);
    });
});
function CotactSelected() {
    var n = $("td.title_listing input:checked");
    alert(n.length);
    var s = "";
    n.each(function() {
        s += $(this).val() + ",";
    });
    window.location = "/D_ContactSeller.aspx?property=" + s;
    alert(s);
}

感谢“Paul Alan Tylor”的指导。