如何在DataGrid控件中隐藏列

2016-01-29 17:31 7 1 收藏

如何在DataGrid控件中隐藏列,如何在DataGrid控件中隐藏列

【 tulaoshi.com - ASP 】

  前言:
asp.net在提供我们丰富的内置控件方便我们开发的同时,一些格式化的东西也限制了我们灵活的要求。在DataGrid控件中,我们遇到的一个非常典型的问题就是如何把我们不想显示的列根据需要随时隐藏掉。
解决方案:
我们不能隐藏在DataGrid里自动生成列的主要的一点原因是:DataGrid里的column不能被DataGrid的属性DataGridColumn增加。
基于以上原因,我们可以提出两种不同的方案来解决这个问题。
方案一:
根据页面请求的事件来隐藏列:
代码:
<%@ Page Language="VB" %
<%@ Import Namespace="System.Data" %
<%@ Import Namespace="System.Data.SqlClient" %
<html
<script runat="server"
Sub Page_Load(Sender As Object, E As EventArgs)
Dim myConnection As SqlConnection = new _
SqlConnection("Data Source=(local)NetSDK; Trusted_Connection=Yes;_ Initial Catalog=pubs")
Dim myCommand As SqlCommand = New SqlCommand("Select * From_ Publishers",myConnection)

myConnection.Open()
myDataGrid.DataSource = myCommand.ExecuteReader_ (CommandBehavior.CloseConnection)
myDataGrid.DataBind()
End Sub
Sub HideShow_Click(Sender As Object, E As EventArgs)
If myDataGrid.Columns(0).Visible = False Then
myDataGrid.Columns(0).Visible = True
Else
myDataGrid.Columns(0).Visible = False
End If
End Sub
</script
<body
<form runat="server"
<asp:DataGrid id="myDataGrid" Width="25%" AutoGenerateColumns="false" runat="server"
<Columns
<asp:TemplateColumn HeaderText="Publisher's ID"
<ItemTemplate
<span<%# Container.DataItem("pub_id") %</span
</ItemTemplate
</asp:TemplateColumn
<asp:TemplateColumn HeaderText="Publisher's Name"
<ItemTemplate
<span<%# Container.DataItem("pub_name") %</span
</ItemTemplate
</asp:TemplateColumn
<asp:TemplateColumn HeaderText="City"
<ItemTemplate
<span<%# Container.DataItem("city") %</span
</ItemTemplate
</asp:TemplateColumn
<asp:TemplateColumn HeaderText="State"
<ItemTemplate
<span<%# Container.DataItem("state") %</span
</ItemTemplate
</asp:TemplateColumn
<asp:TemplateColumn HeaderText="Country"
<ItemTemplate
<span<%# Container.DataItem("country") %</span
</ItemTemplate
</asp:TemplateColumn
</Columns
</asp:DataGrid
<asp:Button id="HideShow" Text="Hide/Show" OnClick="HideShow_Click" runat="server" /
</form
</body
</html
程序执行执行演示:
Show:

(图show)
Hide

(图hide)
方案二:

方案二实际上是一的变通,我就简单的介绍一下。在一中我们通过button的OnClick事件来判断是Show还是Hide,那么我们也可以通过联接获取参数的值来做判断。
代码:
<%@ Page Language="VB"%
<%@ Import Namespace="System.Data" %
<%@ Import Namespace="System.Data.SqlClient" %
<html
<script runat="server"
Sub Page_Load(Sender As Object, E As EventArgs)
Dim myConnection As SqlConnection = new _
SqlConnection("Data Source=(local)NetSDK; Trusted_Connection=Yes;_ Initial Catalog=pubs")
Dim myCommand As SqlCommand = New SqlCommand("Select * From Publishers",_ myConnection)

myConnection.Open()
myDataGrid.DataSource = myCommand.ExecuteReader_(CommandBehavior.CloseConnection)
myDataGrid.DataBind()
If Request.QueryString("Security") = "Admin" Then
myDataGrid.Columns(0).Visible = False
End If
End Sub
</script
<body
<form runat="server"
<asp:DataGrid id="myDataGrid" AutoGenerateCol

来源:http://www.tulaoshi.com/n/20160129/1501731.html

延伸阅读
 使用Component编程是一项值得推崇的技术,它既具有可视化的界面编程模式,又不向UserControl那样体积庞大。但是,熟悉UserControl的朋友们都知道,在UserControl类中有一个FindForm()函数,返回UserControl所在的窗体的引用,这将大大方便我们对窗体的控制----尽管这可能有些越俎代庖的味道,但有时我们就需要这种控制能力。   ...
RecordSet事件的编程 也可以对这个Recordset对象的事件进行编程。在该类模块中,单击“对象”框(在位于左上角),然后单击“rsNames”。在“过程/事件”框(在右上角)中,下拉列表将显示这个Recordset对象的所有事件。 给类添加一个属性 类模块也可以进行修改,来响应事件或函数调用。下面的代码演示了如何先给类添...
使用列 通过更改DataSource属性,可以动态地更改在DataGrid控件中显示的数据。例如,可以显示同一个数据库的不同表。如果这样做,则DataGrid控件将只根据默认的属性显示数据。 添加、删除或隐藏列 通过使用Columns集合和Column对象的属性和方法,可以在程序中添加、删除或隐藏列。 添加和删除一列 要在运...
单击DATAGRID 的某一列时,在DATAGRID的最后增加一行,把整列的和显示在增加的这一行里。 如果想简单的方法的话请参见:DataColumn.Expression 属性 [C#]:获取或设置表达式,用于筛选行、计算列中的值或创建聚合列。 笨方法如下: bool Sumed=false;//指示是否在最后一行显示了该列的和 private void dataGrid1_MouseDown(object sender, Sy...
标签: Web开发
今天改界面,发现datagrid可以用cssclass设置css风格,但是按钮列没有cssclass属性。忙活了半天,发现只能用程序设置按钮列属性。 设置方法如下(C#版本) 为datagrid添加ItemCreat事件,在ItemCreat事件里面添加如下代码 private void dgBoxList_ItemCreated(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)   ...

经验教程

707

收藏

17
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部