如何在.cs文件中,把不想在gridview中显示的列隐藏掉?

如题目所说,我也不知再怎么细说了.

ASPX文件主要代码为:

<asp:GridView ID="dg" runat="server" >
</asp:GridView>

.CS文件主要代码为:

protected void Page_Load(object sender, EventArgs e)
{

string b = Request.QueryString["bianhao2"];
string dbpath = System.Configuration.ConfigurationSettings.AppSettings

["dbpath"];
OleDbConnection conn = new OleDbConnection

("Provider=Microsoft.jet.OLEDB.4.0;Data source=" + Server.MapPath(dbpath));
conn.Open();
string str = "select * from kehu where tid='" + b + "'";
OleDbDataAdapter da = new OleDbDataAdapter(str, conn);
DataSet ds = new DataSet();
da.Fill(ds);
dg.DataSource = ds;
dg.DataBind();

}

现在的情况是可以在GRIDVIEW中,显示ds(ds为上面代码中定义的DataSet)中的所有数据,不过有些列我不想要,不知该怎么设置.

望高手指点!
还有就是,我想把想显示的几个列的列标题显示成我想要的中文,不要显示为数据表的字段名,怎么设置?

郁闷的,高手帮忙啊.

___________________________________________________________________________________________
大家说的都不错,但是正确答案只能有一个.不好意思了,各位! 只能选择最早,也是对的了.

GridView默认会自动生成数据源的列,一般来说,不要让GridView自动生成列,那样就不好控制显示哪些列,也不好控制显示列的数据格式,

在aspx文件中,把GridView的【AutoGenerateColumns】属性设置成【false】:
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False"></asp:GridView>

然后手动添加绑定列或模板列,模板列更灵活,以下代码是添加模板列(假定你的数据源有UserName和TrueName两个字段):

<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False">
<Columns>

<asp:TemplateField HeaderText="用户名">
<ItemTemplate>
<asp:Label ID="Label1" runat="server" Text='<%# Eval("UserName") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>

<asp:TemplateField HeaderText="真实姓名">
<ItemTemplate>
<asp:Label ID="Label2" runat="server" Text='<%# Eval("TrueName") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>

</Columns>
</asp:GridView>

然后后台代码仍然照你的代码绑定数据就可以了,
温馨提示:内容为网友见解,仅供参考
第1个回答  2009-05-12
选中GridView然后编辑列
在里面你可以把你不想要列删除
列标题改动前提是你的列不是自动生成的,而是自己添加然后绑定列名生成的,可以在headreText里设置你要的中文名

<asp:TemplateField HeaderText="用户名">
<ItemTemplate>
<asp:Label ID="Label1" runat="server" Text='<%# Eval("UserName") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
这个就是自己添加的模板列,HeaderText="用户名" 为你要改的中文名
Text='<%# Eval("UserName") %>'则是这列绑定的数据
第2个回答  2009-05-12

1,不想要的列在SQL语句里面就不要查询出来了,除非它有别的用途。这个时候可以用gridview隐藏掉。

VS不是有可视化的编辑器吗,我给你发张图片,你就知道在哪里改了。

第3个回答  2009-05-12
首先显示中文名,在前台写模版比较方便。
再后台可以加进去,但是比较麻烦。

至于不想要的列可以用gridview.Columns[列号].Visable处理

但你用了模版列写的话设定AutoGenerateColumns=false
这样你没在模版里写的列就会自动隐藏
第4个回答  2009-05-12
还有就是,我想把想显示的几个列的列标题显示成我想要的中文,不要显示为数据表的字段名,怎么设置?

this.dataGridView1.Columns.Add("第一列名", "第二列名", "第三列名", "第四列名", "第五列名");
this.dataGridView1.Rows.Add("第一个字段值", "第二个字段值", "第三个字段值", "第四个字段值", "第五个字段值");
第5个回答  2009-05-12
创建rowdatabound事件假如你有五个字段想隐藏第2个和第4个
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
e.Row.Cells[1].Attributes.Add("style", "display:none");
e.Row.Cells[3].Attributes.Add("style", "display:none");
}

如何在.cs文件中,把不想在gridview中显示的列隐藏掉?
在aspx文件中,把GridView的【AutoGenerateColumns】属性设置成【false】:<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False"><\/asp:GridView> 然后手动添加绑定列或模板列,模板列更灵活,以下代码是添加模板列(假定你的数据源有UserName和TrueName两个字段):<asp:GridView ID=...

C# 关于Gridview的隐藏列问题
GridView中的列是自动生成的,自动生成的列字段不会添加到 Columns 集合中,所以gv.Columns[5].Visible = false是不行的,只修改它的数据源了及把它Bind的DataTable的第6列删除就行了。根据你上面的内容,我做了一个测试程序。你在CS文件中粘贴上我写的代码,看一下。protected void Page_Load(obje...

如何实现:GridView 控件中显示的文本不自动换行,隐藏超出宽度部分_百度...
ItemStyle 里面的宽度设定一下 在aspx页的源里面找到绑定列直接用函数搞定 static public string GetSubString(string str,int num){ region return (str.Length > num)?str.Substring(0,num)+ "...":str;endregion } int num 是你要截取的字符串的长度 ,在cs文件中用 给这列注册一个客户端事...

如何实现:GridView 控件中显示的文本不自动换行,隐藏超出宽度部分_百度...
编辑列 属性 ItemStyle 里面的宽度设定一下 在aspx页的源里面找到绑定列直接用函数搞定 static public string GetSubString(string str, int num){ region return (str.Length > num) ? str.Substring(0, num) + "..." : str;endregion } int num 是你要截取的字符串的长度 ,在cs文件中用...

gridview 在cs文件中启用删除
可以写,怎么写没试。在aspx上写的删除选项只不过是一个触发条件,最终都要调用的是cs里面的code来进行删除操作。

gridview为什么显示不全
你在CS代码中没有为GridView绑定数据源 在PageLoad里加上 grInfo.DataSource=你的数据源;grInfo.DataBind();第二种情况就是你为GridView绑定的数据源返回的查询结果为空 因为在Android中,有这样一个限制,两ScrollView型的控件不能相互嵌套。像ListView和GridView就都是ScrollView型的控件。因为嵌套后,两...

在CS代码中asp.net如何对数据绑定控件里的数据进行判断?
<%#Eval("EmployeeID").Equals(1)?"是":"否" %> 可以考虑放入一个label控件,设置text属性 你这个地方应该属于模板列的,我把页面代码发出来 <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" > <Columns> <asp:TemplateField> <ItemTemplate> <asp:Label Text='<%#...

Handler.ashx返回数据库中图片到Gridview的问题?
在Handler.ashx.cs里面判断,如果字段是空值,则输出一个你自己放在服务器上的一个用来标识为空的图片。比与放一个Empty.png。如果查到为空,则输出Empty.png的内容,否则输出查到的值。示例代码:if(** is DBNull)\/\/你的那一列值 如果是空 { context.Response.WriteFile(context.Server.MapPath(...

gridView中的单元格如何控制,最多只能输入20个中文字
1.cs代码中:GridView的RowDataBound中对想做处理的项做Remove()字符串截取。2.aspx页面中:GridView的<ItemTemplate>数据项模板标签对中对其控件内显示文本的相应属性做Eval绑定,同样以SubString为最终截取显示文本。如:<asp:TemplateField HeaderText="描述"> <ItemTemplate> <asp:Label ID="lbl" ...

在GridView中截取文章标题的一部分?
用模板列在模板列的Item项里放个Label选取Label的DataBinding属性,在里面找到Text属性写 (Eval("标题列名").ToString().Langth>15):Eval("标题列名").ToString().Substring(0,15)?Eval("标题列名").ToString()这样做,不可能是你说的那样的,要不就是你的字符都比10个短.除非你在别的事件里重新...

相似回答
大家正在搜