如何在DataGrid控件中隐藏列

2016-01-29 17:31 4 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

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

延伸阅读
使用列 通过更改DataSource属性,可以动态地更改在DataGrid控件中显示的数据。例如,可以显示同一个数据库的不同表。如果这样做,则DataGrid控件将只根据默认的属性显示数据。 添加、删除或隐藏列 通过使用Columns集合和Column对象的属性和方法,可以在程序中添加、删除或隐藏列。 添加和删除一列 要在运...
RecordSet事件的编程 也可以对这个Recordset对象的事件进行编程。在该类模块中,单击“对象”框(在位于左上角),然后单击“rsNames”。在“过程/事件”框(在右上角)中,下拉列表将显示这个Recordset对象的所有事件。 给类添加一个属性 类模块也可以进行修改,来响应事件或函数调用。下面的代码演示了如何先给类添...
 使用Component编程是一项值得推崇的技术,它既具有可视化的界面编程模式,又不向UserControl那样体积庞大。但是,熟悉UserControl的朋友们都知道,在UserControl类中有一个FindForm()函数,返回UserControl所在的窗体的引用,这将大大方便我们对窗体的控制----尽管这可能有些越俎代庖的味道,但有时我们就需要这种控制能力。   ...
标签: 电脑入门
MAC用户经常在Mac App Store和iOS App Store中购买应用,不过在App Store中仍会存在一个购买历史,怎么样才能让自己的购买历史不被其他人看到呢?现在图老师小编就教你一个将App Store中的购买历史隐藏起来的方法。 对于iOS平台的App Store,你只需要进入已购买列表,然后在应用边上像删除短信一样,滑动手指,红色的隐藏按钮就会出现,点击之...
标签: Web开发
在WEB应用中,如何才能使应用高效率呢?如何才能吸引用户呢?这的确是个大学问,页面的内容,色搭配等都十分重要。但不可忽视的是,多数情况下,对于数据的呈现方式也是十分重要的。由于web应用的规模不断增大,数据也越来越多了,有时候,由于在一个页面同时显示的数据太多,从而造成页面的不美观,用户因此也会感到厌倦和操作困难。因此,本文...

经验教程

511

收藏

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