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 的第二列,请问该怎么写?谢谢! 展开
代码如下,高手帮忙分析分析,谢谢!
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 的第二列,请问该怎么写?谢谢! 展开
8个回答
展开全部
讲一下看法:
看法1、你是要隐藏第二列【姓名】列是吧,那么你的SQL语句查询的时候可以不要查出姓名列的数据,返回的Table就没有姓名了,然后再绑定这样不行吗?
看法2、或许试试找出GridView的RowDataBound事件中, 设定 e.Row.Cells[index].Visible=false //index是你要隐藏的列索引.
看法3、不是办法中的办法、先把整张表绑定在gridview中,然后利用gridview 编辑列的功能,再编辑列里好像就有个属性是visible 设为false就可以。
呵呵,纯属个人意见,希望可以帮到您一点!
对了显示不出数据的原因或许是GridView1 .DataSource =ds.Tables [0]后面少了一个.DefaultView。
祝你快点解决问题!呵呵。。。。
看法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,比如说:
<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
代码中"~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
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
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>");
就可以正确输出列数
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>");
就可以正确输出列数
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
首先,是否执行了你的这个方法,再就是ds.table[0]中是否有数据,就没有什么问题了
隐藏grid view 的第二列,你可以不在sql语句里查第二列的值啊
隐藏grid view 的第二列,你可以不在sql语句里查第二列的值啊
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
如果你的GridView的字段不是手动绑定的,那么AutoGenerateColumns这个属性要设为true
而如果要删除第二列,那么最简单的办法,ds.Tables[0].Columns.RemoveAt(1);
而如果要删除第二列,那么最简单的办法,ds.Tables[0].Columns.RemoveAt(1);
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询