GridView 中动态插入一列,导致 GridView 中该列前面的模板列出错
最近写一个页面,发现一个问题,在   GridView   中间插入一列,注意是插入,而不是添加,不管插入的列是什么列,当PostBack回来时,就会出现该列前面的所有模板列都不见了,大家遇到过这种情况吗?有什么好办法?我现在只能用   BoundField   列来显示了。   
 示例代码: 
                         if   (!IsPostBack) 
                         { 
                                     BoundField   b   =   new   BoundField(); 
                                     GridView1.Columns.Insert(5,   b);   //Insert   会出现这种情况,Add   就没问题。 
                                     GridView1.DataSource   =   CreateDataSource(); 
                                     GridView1.DataBind(); 
                         } 
                         else 
                         { 
                                     GridView1.DataSource   =   CreateDataSource(); 
                                     GridView1.DataBind(); 
                                     //这时候,前面4列中所有的模板列都什么也显示不出来了。 
                         }   
 查了很久,也没有找到解决办法,谁能告诉我怎么解决?   
------解决方案--------------------放在Page_Load也是可以的,下面是完整源代码,你可以试试   
  <%@ Page Language= "C# " EnableViewState= "false " AutoEventWireup= "true " CodeFile= "Default20.aspx.cs " 
   Inherits= "Default20 " %>    
  <!DOCTYPE html PUBLIC  "-//W3C//DTD XHTML 1.0 Transitional//EN "  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd ">  
  <html xmlns= "http://www.w3.org/1999/xhtml ">  
  <head runat= "server ">  
    <title> 无标题页 </title>  
  </head>  
  <body>  
    <form id= "form1 " runat= "server ">  
      <asp:GridView ID= "GridView1 " runat= "server " AutoGenerateColumns= "False ">  
        <Columns>  
          <asp:TemplateField HeaderText= "模板列姓名 ">  
            <ItemTemplate>  
              <%#Eval( "学生姓名 ")%>  
            </ItemTemplate>  
          </asp:TemplateField>  
          <asp:TemplateField HeaderText= "模板列年级 ">  
            <ItemTemplate>  
              <%#Eval( "学生班级 ")%>  
            </ItemTemplate>  
          </asp:TemplateField>  
          <asp:BoundField DataField= "语文 " HeaderText= "语文 " SortExpression= "语文 " />  
          <asp:TemplateField HeaderText= "模板列计算机 ">  
            <ItemTemplate>  
              <%#Eval( "计算机 ")%>  
            </ItemTemplate>  
          </asp:TemplateField>  
          <asp:BoundField DataField= "数学 " HeaderText= "数学 " SortExpression= "数学 " />  
        </Columns>  
      </asp:GridView>  
      <asp:TextBox ID= "TextBox1 " runat= "server "> 控件的值 </asp:TextBox>  
      <asp:Button ID= "Button1 " runat= &qu