日期:2014-05-18  浏览次数:20372 次

新手上路,遇害隐藏gridview列出现的问题
gridview   绑定数据表,因列数太多所以根据用户的选择来显示相应的字段,假设数据表列:Id,Name,Age   ,Sex,Phone,Email   页面上有两checkbox     一个定义为chkBaseInfo   另一个定义为chkContact   当chkBaseInfo选中时则显示Id,Name,Age   ,Sex,当chkContact选中时则显示Id,Name,Phone,Email.
我现在的方法是这样的(当chkBaseInfo选中)
mySqlConnection.Open();
            SqlDataAdapter   da   =   new   SqlDataAdapter( "select   *   from   Customers       ",   mySqlConnection);
                        DataSet   ds   =   new   DataSet();
                        da.Fill(ds);
                   
                        gvmetirial.DataSource   =   ds;
                        gvmetirial.DataKeyNames   =   new   string[]   {   "Id "   };
                        gvmetirial.Columns[4].Visible   =   false;
                        gvmetirial.Columns[5].Visible   =   false;
                        gvmetirial.DataBind();
                        mySqlConnection.Close();


当chkContact选中
mySqlConnection.Open();
            SqlDataAdapter   da   =   new   SqlDataAdapter( "select   *   from   Customers       ",   mySqlConnection);
                        DataSet   ds   =   new   DataSet();
                        da.Fill(ds);
                        gvmetirial.DataSource   =   ds;
                        gvmetirial.DataKeyNames   =   new   string[]   {   "Id "   };
                        gvmetirial.Columns[2].Visible   =   false;
                        gvmetirial.Columns[3].Visible   =   false;
                        gvmetirial.DataBind();
                        mySqlConnection.Close();

现在出现的问题是所显示出来的列没有数据(Id,Name   是一直有的),
当我选择chkContact   时,列Age   ,Sex是隐藏的,列Phone,Email是显示的,但就是没有数据,不知道是怎么回事,还望高人帮帮忙

------解决方案--------------------
重新绑定数据源,不要某个字段不行吗?
------解决方案--------------------
05的grid有个特性 将列的enable设置成false后 是取不到值的 ,我上面的方法是用样式来隐藏的,可以达到效果 还有种方法记得不是很清楚,觉得这样用样式来隐藏操作也算比较方便的,不过实在也是比较土的