ASP.NET GridView 数据绑定的问题。。。

我在GridView中明明绑定了5列,可是每次输出列数都是0,为什么呀?代码如下,高手帮忙分析分析,谢谢!voidData(){SqlConnectionconn=new... 我在GridView中明明绑定了5列,可是每次输出列数都是0,为什么呀?

代码如下,高手帮忙分析分析,谢谢!

void Data()
{
SqlConnection conn = new SqlConnection(@"Data Source=MICROSOF-419760\SQLEXPRESS;Initial Catalog=test;Integrated Security=True");
SqlCommand cmd = new SqlCommand("select ID as '编号',Name as'姓名',sex as'性别',age as'年龄',birthday as'生日',phone as'联系电话' from person",conn );
SqlDataAdapter da = new SqlDataAdapter(cmd );
DataSet ds = new DataSet();
da.Fill(ds);
GridView1 .DataSource =ds.Tables [0];
GridView1.DataBind();
Response.Write("<script language='javascript'>alert('" + GridView1.Columns.Count.ToString() + "')</script>");
}
最最重要的是,我想隐藏grid view 的第二列,请问该怎么写?谢谢!
展开
 我来答
lhmlyx2723356
2010-12-08 · TA获得超过120个赞
知道答主
回答量:30
采纳率:0%
帮助的人:0
展开全部
讲一下看法:
看法1、你是要隐藏第二列【姓名】列是吧,那么你的SQL语句查询的时候可以不要查出姓名列的数据,返回的Table就没有姓名了,然后再绑定这样不行吗?
看法2、或许试试找出GridView的RowDataBound事件中, 设定 e.Row.Cells[index].Visible=false //index是你要隐藏的列索引.
看法3、不是办法中的办法、先把整张表绑定在gridview中,然后利用gridview 编辑列的功能,再编辑列里好像就有个属性是visible 设为false就可以。
呵呵,纯属个人意见,希望可以帮到您一点!
对了显示不出数据的原因或许是GridView1 .DataSource =ds.Tables [0]后面少了一个.DefaultView。
祝你快点解决问题!呵呵。。。。
俊俏又柔美灬繁星N
2010-12-07 · TA获得超过466个赞
知道小有建树答主
回答量:583
采纳率:100%
帮助的人:415万
展开全部
首先从目的上来讲,你想要看到的结果是:Handler.aspx?EmployeeID=XXX,其中最后的XXX是对应你数据库中的字段EmployeeID的值的

代码中"~Handler.aspx?EmployeeID="这部分是固定的文字串,Eval()是一个方法,是从结果集中的当前行里取出对应字段值的方法。Eval一般都用在重复数据显示的控件里,比如DataList或GridView,比如说:

<asp:DataList ID="DataList1" runat="server"
DataSourceID="ObjectDataSource1">
<ItemTemplate>
<asp:Label runat="server" ID="ProductNameLabel"
Text='<%# Eval("ProductName") %>'></asp:Label>
</ItemTemplate>
</asp:DataList>

重复数据显示控件会在内部自动循环得到的结果集,以上面这个例子来说的话,如果结果集里有3行的话,ItemTemplate这部分会被执行3遍,每遍对应不同的行。

对应到你的情况,如果你数据库里有3个EmployeeID,就会显示3行。比如说你有EmployeeID: 1, 2, 3 结果就会向下面这样

~Handler.aspx?EmployeeID=1
~Handler.aspx?EmployeeID=2
~Handler.aspx?EmployeeID=3
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
小狗核桃
2010-12-04 · 超过41用户采纳过TA的回答
知道小有建树答主
回答量:127
采纳率:0%
帮助的人:106万
展开全部
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("<script language='javascript'>alert('" +((DataTable) GridView1.DataSource).Columns.Count.ToString() + "')</script>");
就可以正确输出列数
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
随性亻
2010-12-07 · TA获得超过4180个赞
知道小有建树答主
回答量:4622
采纳率:84%
帮助的人:636万
展开全部
首先,是否执行了你的这个方法,再就是ds.table[0]中是否有数据,就没有什么问题了

隐藏grid view 的第二列,你可以不在sql语句里查第二列的值啊
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
最后的仙人
2010-12-07 · TA获得超过1961个赞
知道大有可为答主
回答量:1509
采纳率:0%
帮助的人:1398万
展开全部
如果你的GridView的字段不是手动绑定的,那么AutoGenerateColumns这个属性要设为true
而如果要删除第二列,那么最简单的办法,ds.Tables[0].Columns.RemoveAt(1);
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(6)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式