如题所示,这是这一段的代码
for (int i = 3; i < ListNode.Count + 3; i++)
            {
                this.grdList.Columns[i].HeaderText = ListNode[i - 3].Text;
                this.grdList.Columns[i].Visible = true;
            }
ListNode.Count 只能为1,2,3的时候可以,超过3就报上面的错误,在线等。

解决方案 »

  1.   

    肯定是索引超出了,你能保证Columns[i]存在吗
      

  2.   

    gridview的列是根据我查出的数据动态生成的,他可能是2列,也可能是3列,或9列
      

  3.   

         this.grdList.Columns[i]这个超出索引了,和for没关系
      

  4.   

    这是我gridview的列设置
     <Columns>
                                <asp:TemplateField HeaderText='费用项' SortExpression="WBMCode">
                                    <ItemTemplate>
                                        <%# Eval("WBMCode") == null ? "" : Eval("WBMCode").ToString()%>
                                    </ItemTemplate>
                                    <HeaderStyle HorizontalAlign="Center" />
                                    <ItemStyle HorizontalAlign="Left" />
                                </asp:TemplateField>
                                <asp:BoundField HeaderText='收入 ' SortExpression="IAmount" DataField="IAmount" ReadOnly="true" />
                                <asp:BoundField HeaderText='直接成本 ' SortExpression="AdjustAmt" DataField="AdjustAmt"
                                    ReadOnly="true" />
                                <asp:BoundField HeaderText='ExpenseItem1 ' Visible="false" SortExpression="ExpenseItem1"
                                    DataField="ExpenseItem1" ReadOnly="true" />
                                <asp:BoundField HeaderText='ExpenseItem2 ' Visible="false" SortExpression="ExpenseItem2"
                                    DataField="ExpenseItem2" ReadOnly="true" />
                                <asp:BoundField HeaderText='ExpenseItem3' Visible="false" SortExpression="ExpenseItem3"
                                    DataField="ExpenseItem3" ReadOnly="true" />
                                <asp:BoundField HeaderText='ExpenseItem4' Visible="false" SortExpression="ExpenseItem4"
                                    DataField="ExpenseItem4" ReadOnly="true" />
                                <asp:BoundField HeaderText='ExpenseItem5' Visible="false" SortExpression="ExpenseItem5"
                                    DataField="ExpenseItem5" ReadOnly="true" />
                                <asp:BoundField HeaderText='ExpenseItem6' Visible="false" SortExpression="ExpenseItem6"
                                    DataField="ExpenseItem6" ReadOnly="true" />
                                <asp:BoundField HeaderText='ExpenseItem7' Visible="false" SortExpression="ExpenseItem7"
                                    DataField="ExpenseItem7" ReadOnly="true" />
                                <asp:BoundField HeaderText='ExpenseItem8' Visible="false" SortExpression="ExpenseItem8"
                                    DataField="ExpenseItem8" ReadOnly="true" />
                                <asp:BoundField HeaderText='ExpenseItem9' Visible="false" SortExpression="ExpenseItem9"
                                    DataField="ExpenseItem9" ReadOnly="true" />
                                <asp:BoundField HeaderText='利润' SortExpression="ActualAmt" DataField="ActualAmt"
                                    ReadOnly="true" />
                            </Columns>
      

  5.   

    你把     循环node的for  和   循环grdList的for  分开理清关系就ok了