Невозможно получить свойство 'rows' вида сетки в панели обновления в asp.net - PullRequest
0 голосов
/ 30 октября 2018

У меня есть страница asp.net с сеткой в ​​панели обновления:

<asp:UpdatePanel ID="upGrid" runat="server" ChildrenAsTriggers="false" UpdateMode="Conditional">
            <Triggers>
                <asp:AsyncPostBackTrigger ControlID="gvBatchGroups" />
            </Triggers>
            <ContentTemplate>
                <asp:GridView ID="gvBatchGroups" runat="server" AutoGenerateColumns="False" DataKeyNames="GroupID" GridLines="Both"
                     BorderWidth="1px" CellPadding="2" ForeColor="Black" BorderStyle="Double" HorizontalAlign="Center" 
                    HeaderStyle-HorizontalAlign="Center" AllowSorting="True" CssClass="gvformat" OnRowDataBound="gvBatchGroups_RowDataBound">
                    <AlternatingRowStyle BackColor="#95B9B9" /> 
                    <HeaderStyle BorderStyle="Double"  BorderColor="Black"/>
                    <Columns>
                    <asp:BoundField DataField="GroupID" HeaderText="Group ID" ItemStyle-HorizontalAlign="Center"/>
                     <asp:BoundField DataField="GroupCode" HeaderText="Group Code" ItemStyle-HorizontalAlign="Center"/>
                     <asp:BoundField DataField="GroupName" HeaderText="Group Name" />
                     <asp:BoundField DataField="GroupType" HeaderText="Group Type" ItemStyle-HorizontalAlign="Center"/>
                     <asp:BoundField DataField="FinancialYear" HeaderText="Financial Year"  ItemStyle-HorizontalAlign="Center"/>
                     <asp:BoundField DataField="IsBatchSelected" HeaderText="Batch Selected" ItemStyle-HorizontalAlign="Center"/>
                     <asp:TemplateField ItemStyle-HorizontalAlign="Center" ItemStyle-VerticalAlign="Middle">
                     <ItemTemplate>
                        <asp:Button ID="btnDetail" runat="server" Text="view" OnClick="btnDetails_Click" CausesValidation="false" Font-Names="Trebuchet MS" CssClass="btn btn-comment" ForeColor="White" Font-Bold="True" />
                     </ItemTemplate>
                     <HeaderTemplate>Properties</HeaderTemplate> 
                     </asp:TemplateField>
                     <asp:templatefield ItemStyle-HorizontalAlign="Center">
                     <HeaderTemplate>Select
                     <input id="cbHeaderSelect" type="checkbox" onclick="CheckAll(this)" runat="server" />
                     </HeaderTemplate>
                        <itemtemplate><asp:checkbox ID="cbSelect" runat="server"></asp:checkbox></itemtemplate>
                    </asp:templatefield>
                    </Columns>
                </asp:GridView>
                <asp:Button ID="bttnHidden" runat="Server" Style="display: none" />
                <br />
            </ContentTemplate>
  </asp:UpdatePanel>

В столбце 8 есть флажок, который вызывает следующую функцию Javascript для выбора всех флажков в сетке:

 function CheckAll(oCheckbox) {
     var Gridview = document.getElementById("<%=gvBatchGroups.ClientID%>");
     for (i = 1; i < Gridview.rows.length; i++) {
         Gridview.rows[i].cells[7].getElementsByTagName("INPUT")[0].checked =
 oCheckbox.checked;
     } }

Однако, когда я нажимаю на заголовок столбца, появляются ошибки функции Javascript:

Невозможно получить свойство 'rows' с неопределенной или нулевой ссылкой

Эта строка появляется под:

 for (i = 1; i < Gridview.rows.length; i++) 

Может ли панель обновления препятствовать тому, чтобы Javascript "видел" вид сетки?

Любая помощь будет наиболее ценится!

...