可以啊。。。用动态创建列就行。。。还可以控制列的长度和选择要显示的列。。。然后状态就用xml来存。
以下创建普通列的方法,另外可以创建link,linkbutten等列,根据你自己的需要吧
BoundField bf_temp = new BoundField();//创建实例
bf_temp.HeaderText = header_name; //列头标题
bf_temp.DataField = data_field; //绑定数据字段
bf_temp.ItemStyle.Width = width; //动态列长度
gv.Columns.Add(bf_temp); //添加到gridview中