如何在DataGrid控件中隐藏列


前言:
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" 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>
</form>
</body>
</html>

本文作者:



相关阅读:
设置Win2003的本地策略应用
jquery实现的超出屏幕时把固定层变为定位层的代码
Windows Vista系统常用补丁功能介绍
Photoshop CSS网页制作的背景图 主题的引用样式
HTML表格标记教程(19):行标记<TR>属性
让超出DIV宽度范围的文字自动显示省略号...
在.net中使用Gmail发送邮件
AJAX初级应用-RSS无刷新聚合器的代码与下载
XHTML教程,简单认识XHTML基础知识
Windows7系统桌面广告图标手动删除方法
详解Access 2007的Ribbon功能区
SQLServer非正常删除日志文件(ldf)恢复方法
Windows系统性能最优化方法
实例演练ASP+XML编程比较全的了
快速导航
PHP MySQL HTML CSS JavaScript MSSQL AJAX .NET JSP Linux Mac ASP 服务器 SQL jQuery C# C++ java Android IOS oracle MongoDB SQLite wamp 交通频道 作文范文 最新社会工作实习报告范文 “小手牵大手 共营一片绿”活动倡议书 羊年同事圣诞节祝福语 生日祝福短信搞笑 听课心得体会:习作教学展示研讨课 关于读书笔记的格式怎么写 中考满分作文1000字:让生命充满爱 地质队员弘扬“三光荣”精神心得体会 2017幽默万圣节祝福语 初中文学社活动计划 争做“文明”少年作文500字 小狗——“白白” 《小学生之友》——我的良师益友 ℡. 有一首情章 灬叫做比翼双飞/* “同在蓝天下”中队主题队会活动方案 碎笔2回眸青春 写给最感激的你——读博儿的诗有感作文200字 清明祭扫烈士墓仪式主持词 机械工程应急设计研究 你真的认真了吗? 三年级开学250字作文:开学典礼 -阳桥 小学四年级作文400字:迷人的汇景湖 父母说百遍,他只需要一分钟教会你 心中永远的星星作文1500字 灰姑娘的传说作文400字 鸟作文750字 廉洁自律的格言,民不容贪党不容腐 鹅毛笔和大拇指 读《少年鳄鱼帮》有感 为人生多备一只电筒 高中高三作文900字:季节 朋友是一首歌作文1200字 成功的秘诀其实就这么简单! 寂寞的城市作文150字 遗失的梦想作文800字 2016年镇卫生院年工作总结范文 小狼小狼读后感200字 重庆dna亲子鉴定 落花醉 捉河蚌作文400字 保护青蛙 邱浩然 我的好朋友沈俊璋250字 消息【一】 考驾照 6月份幼儿园财务管理工作计划 小学学校工作总结结尾 快餐店策划方案范文 情人节幽默祝福语 奈何桥上的栀子花香

Copyright © 2016 phpStudy |