讲一下看法:
看法1、你是要隐藏第二列【姓名】列是吧,那么你的SQL语句查询的时候可以不要查出姓名列的数据,返回的Table就没有姓名了,然后再绑定这样不行吗?
看法2、或许试试找出GridView的RowDataBound事件中, 设定 e.Row.Cells[index].Visible=false //index是你要隐藏的列索引.
看法3、不是办法中的办法、先把整张表绑定在gridview中,然后利用gridview 编辑列的功能,再编辑列里好像就有个属性是visible 设为false就可以。
呵呵,纯属个人意见,希望可以帮到您一点!
对了显示不出数据的原因或许是GridView1 .DataSource =ds.Tables [0]后面少了一个.DefaultView。
祝你快点解决问题!呵呵。。。。
首先从目的上来讲,你想要看到的结果是:Handler.aspx?EmployeeID=XXX,其中最后的XXX是对应你数据库中的字段EmployeeID的值的
代码中"~Handler.aspx?EmployeeID="这部分是固定的文字串,Eval()是一个方法,是从结果集中的当前行里取出对应字段值的方法。Eval一般都用在重复数据显示的控件里,比如DataList或GridView,比如说:
重复数据显示控件会在内部自动循环得到的结果集,以上面这个例子来说的话,如果结果集里有3行的话,ItemTemplate这部分会被执行3遍,每遍对应不同的行。
对应到你的情况,如果你数据库里有3个EmployeeID,就会显示3行。比如说你有EmployeeID: 1, 2, 3 结果就会向下面这样
~Handler.aspx?EmployeeID=1
~Handler.aspx?EmployeeID=2
~Handler.aspx?EmployeeID=3
ds.Table[0].Columns是数据源啊,当然没有Visable属性~
GridView才有Visable属性
比如你要隐藏第一列,应该是GridView1.Columns[0].Visable=False
注意如果绑定之前Visable=False数据就不会再绑定了,所以要在绑定方法前写GridView1.Columns[0].Visable=True
绑定方法后写GridView1.Columns[0].Visable=False
另:GridView列数的问题,原因我不知道,但是如果你用
Response.Write("");
就可以正确输出列数
首先,是否执行了你的这个方法,再就是ds.table[0]中是否有数据,就没有什么问题了
隐藏grid view 的第二列,你可以不在sql语句里查第二列的值啊
如果你的GridView的字段不是手动绑定的,那么AutoGenerateColumns这个属性要设为true
而如果要删除第二列,那么最简单的办法,ds.Tables[0].Columns.RemoveAt(1);