如何取得GridView被隐藏列的值

    

        如何取得GridView被隐藏列的值             

        分类:             ASP.net                   943人阅读     评论(1)     收藏     举报    

今天在CSDN上看到有人问“如何取得GridView被隐藏列的值?”,当GridView列使用了Visible=false时,数据就不会被加载到表格中了,自然也取不到值了。但是我们就是想要取这个隐藏列的值该怎么办呢?我也遇到过这个问题, 印象中是设定GridView的DataKeys属性。网上搜了一下,总结一下基本有三种方法:

方法一: 设置GridView列的Visible=false,再设定GridView的DataKeyNames="你想要隐藏的列ID"。例如: <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataKeyNames="EmployeeID" DataSourceID="SqlDataSource1" >

<Columns> <asp:BoundField DataField="UserID" HeaderText="UserID" ReadOnly="True" SortExpression="UserID" Visible ="false" /> <asp:BoundField DataField="age" HeaderText="age" SortExpression="age" />

。。。

</Columns>  </asp:GridView>

方法二: 设置一个Css类:  .hidden { display:none;} 随后在GridView的列编辑对话框中,对需要进行隐藏的列进行设置,分别设置FootStyle,HeaderStyle,ItemStyle的CssClass属性为“hidden” Ok,这样我们就实现了隐藏列的目的,同时又能保证对其进行数据绑定。   方法三: 在GridView中设置该列的Visible为True,然后在RowCreated事件中设置隐藏,这样就能取到隐藏列的值了。例如:

protected void GridView1_RowCreated(object sender, GridViewRowEventArgs e)    

{         

    if (e.Row.RowType == DataControlRowType.DataRow || e.Row.RowType == DataControlRowType.Header)                            

    {                         

          e.Row.Cells[1].Visible = false;              

     }     

 } 

 

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/qlk_2007/archive/2008/11/05/3223843.aspx

在使用 vs 2003 的时候,将多个列隐藏供程序处理的时候使用,通常是将这个列的visible=false 即可解决。但在 2.0之后 GridView 隐藏列就无法获取到值。一个较优雅的GridView隐藏列取值解决方案   对于多列这样做一样取不到值,  GridView隐藏列取值  这样做确实有点麻烦。通过摸索,终于找到了一种相对简单的实现方法。 我的实现方法: 1. gridview 绑定的之前增加:

          if (ds != null)             {                 string[] dkey = "autoid""myUserID""outerKey" };                 this.gdvAlbum.DataKeyNames = dkey;                 this.gdvAlbum.DataSource = ds.Tables[0];                 this.gdvAlbum.DataBind();             }

 

 

 

 

2.取值:

System.Collections.Specialized.IOrderedDictionary dk = gdvAlbum.DataKeys[i].Values;   int albumID = int.Parse(dk[0]);   int myID = int.Parse(dk[1]);   string okey = dk[2].ToString();
posted @   yufeiyunsui  阅读(290)  评论(1编辑  收藏  举报
编辑推荐:
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
点击右上角即可分享
微信分享提示