gridview的构造是固定的9列+多列动态列生成的点了检索按钮,先把原来的动态多列删除 gvDayH.Columns.RemoveAt(intCount - i + 9)
再根据数据库的数据动态生成列。现在的问题是,我点第一次和第二次都正常的。
我点第三次的时候,固定的9列的数据没有数据显示了。我把gvDayH.Columns.RemoveAt(intCount - i + 9)注释掉的话,就不会出现上述情况。这是什么原因

解决方案 »

  1.   

    那就是intCount-i这里有问题啊
      

  2.   

    这里的RemoveAt说是要索引
    我用的intCount - i + 9是列数坐标这里intCount - i + 9这样使用应该是没错的吧?
      

  3.   

    LS几位说的对,估计就是发生在你删除gvDayH.Columns.RemoveAt(intCount - i + 9) 这里,你可以跟踪下,第三次你的intCount是多少啊?
      

  4.   

    删是肯定够的。
    面上看上去都是对的数据没显示的原因是没绑定上去。
    这点我在RowDataBound去控件的时候确认过了。
      

  5.   

    发现一点线索
                                <asp:TemplateField HeaderText="安全在庫">
                                    <ItemTemplate>
                                        <asp:Label ID="Anzenzaikosu" runat="server" Text='<%# EVAL("Anzenzaikosu") %>'></asp:Label>
                                        <asp:HiddenField ID="hbnAnzenzaikosu" runat="server" Value='<%# EVAL("Anzenzaikosu") %>' />
                                    </ItemTemplate>
                                    <ItemStyle HorizontalAlign="Right" VerticalAlign="Middle" Width="65px"/>
                                </asp:TemplateField>我用上面方法写的,都不能正常显示用下面这种方法写的,都可以正常显示。
                               <asp:BoundField DataField="number" HeaderText="数量"  >
                                   <ItemStyle Width="80px" Wrap="false"/>
                               </asp:BoundField>