文件名称:ASP.NET Gridview隐藏/显示列源码
文件大小:174KB
文件格式:RAR
更新时间:2013-03-29 04:58:14
ASP.NET Gridview
ASP.NET实现Gridview隐藏/显示列源码 介绍: 这篇文章演示如果让用户有显示/隐藏他们需要的GridView的列的功能,这是非常有用的,因为在GridView的所有列并不是每个的用户都需要的.用户想根据自己的需求看到想要的列.而不是显示一个巨大的gridview,霸占了整个屏幕,而是一个整洁的Gridview,而且它有所有你需要的列.对于页面的打印这也是一个非常有用的技术,因为用户可以灵活地选择GridView的列打印。 背景: RowCreated 和ItemDataBound 事件允许你用多种方式注入HTML, CSS,和JavaScript 来增强GridView 控件的功能。 文章将会演示两种显示和隐藏GridView列的方法,一种是客户端的方法,另外一种是服务段的方法. 在客户段显示和隐藏GridView的列 大部分代码是在GridView的RowCreated事件生成客户端的功能的。当GridView的Header行被创建后,一个带负号的HyperLink被插入每个Header行的单元格中用来隐藏列。 这个hyperlink通过它的onclick事件调用一个HideCol的Javascript方法,CSS类用来增加负号的大小,当每个数据行被创建的时候,一个Id将会被添加到每行中用来让Javascript区分每一行. 代码 protected void GridView1_RowCreated(object sender, GridViewRowEventArgs e) { GridView gridView = (GridView)sender; StringBuilder sb = new StringBuilder(); // For the header row add a link to each header // cell which can call the HideCol javascript method if (e.Row.RowType == DataControlRowType.Header) { // Loop through each cell of the row for (int columnIndex = 0; columnIndex < e.Row.Cells.Count; columnIndex++) { // Build the hide column link sb.Remove(0, sb.Length); // first empty the StringBuilder sb.Append("javascript:HideCol('"); sb.Append(gridView.ClientID); sb.Append("', "); sb.Append(columnIndex); sb.Append(", '"); sb.Append(columnNames[columnIndex]); sb.Append("');"); // Build the "Hide Column" HyperLink control HyperLink hideLink = new HyperLink(); hideLink.Text = "-"; hideLink.CssClass = "gvHideColLink"; hideLink.NavigateUrl = sb.ToString(); hideLink.Attributes.Add("title", "Hide Column"); // Add the "Hide Column" HyperLink to the header cell e.Row.Cells[columnIndex].Controls.AddAt(0, hideLink); // If there is column header text then // add it back to the header cell as a label if (e.Row.Cells[columnIndex].Text.Length > 0) { Label columnTextLabel = new Label(); columnTextLabel.Text = e.Row.Cells[columnIndex].Text; e.Row.Cells[columnIndex].Controls.Add(columnTextLabel); } } } // Give each row an id if (e.Row.RowType == DataControlRowType.Pager) e.Row.Attributes.Add("id", gridView.ClientID + "_pager"); else e.Row.Attributes.Add("id", gridView.ClientID + "_r" + e.Row.RowIndex.ToString()); } SetupShowHideColumns方法中生成“Show Columns”下拉菜单的HTML,输出在Literal控件上面 。 代码 private void SetupShowHideColumns(GridView gridView, Literal showHideColumnsLiteral) { StringBuilder sb = new StringBuilder(); sb.Append("
【文件预览】:
ShowHideGridviewColumns
----App_Themes()
--------default()
----ShowHideGridViewColumnsClientVB.aspx(1KB)
----ShowHideGridViewColumnsServer.aspx.cs(6KB)
----ShowHideGridViewColumnsServerVB.aspx.vb(6KB)
----ShowHideGridViewColumnsClientVB.aspx.vb(6KB)
----web.config(8KB)
----MasterPage.master.cs(461B)
----ShowHideGridViewColumnsServer.aspx(2KB)
----App_Data()
--------Database.mdf(2.19MB)
--------Database_log.LDF(560KB)
----Default.aspx(2KB)
----ShowHideGridViewColumnsServerVB.aspx(2KB)
----Default.aspx.cs(389B)
----ShowHideGridviewColumnsClientFull.aspx.cs(5KB)
----ShowHideGridViewColumnsClient.aspx(1KB)
----ShowHideGridViewColumnsClient.aspx.cs(6KB)
----scr()
--------ShowHideColumns.js(2KB)
----ShowHideGridViewColumnsServerFull.aspx(7KB)
----MasterPage.master(756B)
----ShowHideGridviewColumnsClientFull.aspx(7KB)
----ShowHideGridViewColumnsServerFull.aspx.cs(5KB)