Изменение CheckBox BackColor без PostBack, как AJAX

Веб-сайт NET Intranet. Со страницей Site.Master и страницами.aspx обычные веб-формы asp. У меня есть эти флажки, как вы можете видеть на картинке. Я использую JavaScript, чтобы изменить цвет фона на зеленый после того, как вы щелкнете по нему без необходимости делать обратную передачу, как AJAX.

С Моим кодом, это работает единственная проблема, мой код затрагивает только поле вокруг чека. Как вы можете видеть здесь.

Но допустим, что я добавляю свойство BackColor="Lime" на страницу aspx... все идеально, как это так, но, конечно, скрипт не работает.

Мой код asp:

    <asp:Table CssClass="GroupKPI" runat="server" GridLines="Horizontal">
            <asp:TableRow runat="server">
                <asp:TableCell runat="server">
                    <%-- Critère de recherche WP--%>
                    <asp:CheckBox ID="labelList_WP" runat="server" Text="WP" CssClass="labelTitle" AutoPostBack="False" BackColor="Lime" />
                    <asp:Panel ID="Panel1" runat="server" CssClass="Panel">
                        <asp:CheckBoxList ID="List_WP" runat="server" CssClass="CBList">
                        </asp:CheckBoxList>
                    </asp:Panel>
                </asp:TableCell>
                <asp:TableCell ID="TableCell13" runat="server" CssClass="CellSeparator" Width="5px"></asp:TableCell>
                <asp:TableCell ID="TableCell5" runat="server">
                    <%-- Critère de recherche WP CF--%>
                    <asp:CheckBox ID="labelList_WP_CF" runat="server" Text="WP CF" CssClass="labelTitle"
                        OnCheckedChanged="Check_Clicked" AutoPostBack="False" />
                    <asp:Panel ID="Panel2" runat="server" CssClass="Panel">
                        <asp:CheckBoxList ID="List_WP_CF" runat="server" CssClass="CBList">
                        </asp:CheckBoxList>
                    </asp:Panel>
                </asp:TableCell>
                <asp:TableCell ID="TableCell14" runat="server" CssClass="CellSeparator" Width="5px"></asp:TableCell>
                <asp:TableCell ID="TableCell6" runat="server">
                    <%-- Critère de recherche SUBWP--%>
                    <asp:CheckBox ID="labelList_SUBWP" runat="server" Text="SUBWP" CssClass="labelTitle"
                        OnCheckedChanged="Check_Clicked" AutoPostBack="False" />
                    <asp:Panel ID="Panel3" runat="server" CssClass="Panel">
                        <asp:CheckBoxList ID="List_SUBWP" runat="server" CssClass="CBList">
                        </asp:CheckBoxList>
                    </asp:Panel>
                </asp:TableCell>
                <asp:TableCell ID="TableCell15" runat="server" CssClass="CellSeparator" Width="5px"></asp:TableCell>
                <asp:TableCell ID="TableCell7" runat="server">
                    <%-- Critère de recherche WP REGROUPEMENT--%>
                    <asp:CheckBox ID="labelList_WP_REGROU" runat="server" Text="WP REGROU" CssClass="labelTitle"
                        OnCheckedChanged="Check_Clicked" AutoPostBack="False" />
                    <asp:Panel ID="Panel4" runat="server" CssClass="Panel">
                        <asp:CheckBoxList ID="List_WP_REGROU" runat="server" CssClass="CBList">
                        </asp:CheckBoxList>
                    </asp:Panel>
                </asp:TableCell>
                <asp:TableCell ID="TableCell16" runat="server" CssClass="CellSeparator" Width="5px"></asp:TableCell>
                <asp:TableCell ID="TableCell8" runat="server">
                    <%-- Critère de recherche ORGANISATION--%>
                    <asp:CheckBox ID="labelList_ORGANISATION" runat="server" Text="Organisation" CssClass="labelTitle"
                        OnCheckedChanged="Check_Clicked" AutoPostBack="False" />
                    <asp:Panel ID="Panel5" runat="server" CssClass="Panel">
                        <asp:CheckBoxList ID="List_ORGANISATION" runat="server" CssClass="CBList">
                        </asp:CheckBoxList>
                    </asp:Panel>
                </asp:TableCell>
            </asp:TableRow>
        </asp:Table>
        <%-- Fin de la table KPI RANGÉ 1--%>

И мой VB позади кода, размещенного в Page Load:

     labelList_WP.Attributes.Add("onclick", "var checkbox=document.getElementById('" & Me.labelList_WP.ClientID & "'); if (checkbox.checked) {checkbox.style.background = '#9ACD32'; } else {checkbox.style.background = '#F3F6FA';}  ")

Обратите внимание, что я пробовал checkbox.style.background, checkbox.style.backgroundColor, checkbox.style.background-color, checkbox.style.BackColor безуспешно.

Также обратите внимание, что я также попытался использовать что-то подобное безуспешно в своем флажке.

    labelList_WP.Attributes.Add("onlick", "if ($(""#labelList_WP"").hasClass(""labelTitleChecked"")==true) { $(""#labelList_WP"").removeClass(""labelTitleChecked""); }  else {$(""#labelList_WP"").addClass(""labelTitleChecked"");}")

Любая помощь будет принята с благодарностью, я потерял весь свой день на этом.. Также отладчик команд; ни в одной из моих попыток не появляется режим отладки.

1 ответ

Решение

Попробуй это:

labelList_WP.Attributes.Add("onclick", "$(""#labelList_WP"").parent().toggleClass(""labelTitleChecked"");")

или в исходном коде вместо настройки checkbox.style.background задавать checkbox.parentElement.style.background,

Другие вопросы по тегам