Флажок «Выбрать все» в виде сетки не реализован - PullRequest
0 голосов
/ 19 августа 2011

У меня есть заголовок в gridview, который помечается как "xls", и флажок, который при выборе должен выбрать все столбцы флажков в gridview, а снятие флажка столбца xls должно снять все столбцы.

Я следуюдве ссылки:

Link-1

Здесь переменная totalChkBoxes возвращается в ноль (несмотря на то, что у моего gridview есть строки).На самом деле при отладке JS код внутри parseInt и строки ниже выглядит как ''

Link-2

Здесь также переменная GridView2 имеет значение null.

Одно общее изменение, которое я делаю в обоих JS, - это замена <% = .....%> на <% # ....%>

.я делаю не такВы также можете помочь, дав подходящую ссылку для реализации желаемой функциональности

КОД, ОБНОВЛЕННЫЙ С МОЕЙ РАБОЧЕЙ JS

<script type="text/javascript" language="javascript">

    function checkAllBoxes() {            
        var gvControl = document.getElementById("gvSample");

        //this is the checkbox in the item template.
        var gvChkBoxControl = "chkSelectItem";

        //Header Template checkbox.
        var mainChkBox = document.getElementById("chkBoxAll");

        //Array of Inputs in gridview.
        var inputTypes = gvControl.getElementsByTagName("input");

        for (var i = 0; i < inputTypes.length; i++) {
            //if the input type is a checkbox and the id of it is what we set above
            //then check or uncheck according to the main checkbox in the header template             
            if (inputTypes[i].type == 'checkbox' && inputTypes[i].id.indexOf(gvChkBoxControl, 0) >= 0)
                inputTypes[i].checked = mainChkBox.checked;
        }
    }

GRIDVIEW CODE

<asp:TemplateField>
                                                    <HeaderTemplate>
                                                        <table style="width: 15px" cellpadding="0" cellspacing="0">
                                                            <tr>
                                                                <td>
                                                                   <asp:Label ID="lblXls" runat="server" Text="xls"></asp:Label>
                                                                   <br />
                                                                        <input id="chkBoxAll" type="checkbox" onclick="checkAllBoxes()"  />
                                                                </td>
                                                             </tr>
                                                         </table>
                                                    </HeaderTemplate>
                                                    <ItemTemplate>
                                                        <asp:CheckBox ID="chkSelectItem" runat="server" />
                                                    </ItemTemplate>
                                                </asp:TemplateField>

Спасибо!

1 Ответ

0 голосов
/ 19 августа 2011

Попробуйте изменить ваш parseInt на что-то вроде этого, чтобы посмотреть, поможет ли это вообще. Я знаю, что это всего лишь небольшое изменение, но мелкие вещи, как правило, ломают код JS:

var totalChkBoxes = parseInt("<%=gvTest.Rows.Count%>");

Во-вторых, если у вас есть runat = "server" в флажке в заголовке, вам может потребоваться изменить эту строку, если ваша JSFunction:

var mainChkBox = document.getElementById("<%=chkBoxAll.UniqueID%>");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...