Skip to content
久久日记本
曾经年少爱追梦,一心只想往前飞
  • 首页
  • 博客
    • 博客历史
    • 主题
    • 个人文集
  • 关于
    • 正在读的书
    • 作品归档
    • 2018作品归档
    • 联系我
  • 友情链接
  • 留言板
❄
❅
❆
❄
❅
❆
❄
❅
❆
❄
.NET

GridView的DataKeyNames属性详解

Posted on 2010年12月5日 by 九九 / 1251 Views

GridView的DataKeyNames属性

DataKeyNames表示主键的列名,可以通过GridViewEntity.DataKeys[RowIndex][“ColumsName”]来获取他的值,当然它是不会显示出来的,其实我是在一个用SqlDataSource中发现的,看到了有这么一个主键而实现更新,当然在我们多层开发中也不能缺少这个。当我们在用Template时怎么取得值呢?我们可以把那个列也设为DataKeyNames中,记得多个要用”,”隔开。

如果没有设置成DataKeyNames,那只能通过GridViewEntity.Rows[RowIndex].Cell[Index].Text来得到值了,不知老兄有没有看到一些HTML字符呢? 这个最是经常见得了,不用当心我们可以用HttpUnility.HtmlDecode()来解决他!

在我们使用GridView的过程中,经常会遇到这样对问题,我们选择某一行进行编辑,或选择某一行删除或者…….时,我们需要获取当前行的某些信息,尤其是当前行的主键信息,主键信息一般不显示在页面,此时我们有三种方法来处理。

第一种是使用DataKeyNames ,这里要重点介绍的。

第二种是使用按钮的CommandArgument属性邦定需要的信息。

第三种是最古老最通用的方法使用隐藏的方法显示。

第一种方法:使用DataKeyNames,DataKeyNames可邦定一列,也可邦定多列
前台:DataKeyNames="FID" 绑定一个值
后台:GridView1.DataKeys[e.Row.RowIndex].Value.ToString();
前台:DataKeyNames="FID,FName" 绑定两个值
后台:GridView1.DataKeys[e.Row.RowIndex].Values[0].ToString();
后台:GridView1.DataKeys[e.Row.RowIndex].Values[1].ToString();

或者

后台:GridView1.DataKeys[e.Row.RowIndex].Values["FID"].ToString();
后台:GridView1.DataKeys[e.Row.RowIndex].Values["FName"].ToString(); 
第二种方法:是用按钮的CommandArgument属性邦定需要的信息。

典型的例子:下载附件列(有附件的显示下载链接,无附件的显示为空)

“`asp.net

‘ >


把隐藏列转成模版列,通过FindControl访问模版列的内容: ```asp.net <asp:TemplateField Visible="false"> <ItemTemplate> <asp:Label runat="server" Text='<%#Eval("id") %>' ID="lblId"></asp:Label> </ItemTemplate> </asp:TemplateField> protected void GridView1_RowEditing(object sender, GridViewEditEventArgs e) { Label lblId=GridView1.Rows[e.NewEditIndex].Cells[0].FindControl("lblId") as Label; Response.Write(lblId.Text); }
ASP.NET
九九
过去的我们,现在的自己,往事,终会随风而逝。 View all posts by 九九 →

Post navigation

Older post
桌面清理向导的使用
Newer post
必须在GridView“GridView1”上指定数据键

标签云

2019ncov Android ASP.NET Baby C# C/C++ CSS Div DX11 flask front-end GAE Git Java JJProject JS Life MSSQL MVC OpenSource Oracle Python React React-Native Software Tools Vue Webpack Website Window WP7 乱记 十年旧梦 天气 宝宝成长日记 小说 工作 情感 故障 散文 日记 网新实训笔记 花落梧桐 诗间集 转载

时光机

  • 2023年3月
  • 2023年2月
  • 2022年12月
  • 2022年4月
  • 2022年3月
  • 2022年1月
  • 2021年12月
  • 2021年11月
  • 2021年10月
  • 2021年9月
  • 2021年8月
  • 2021年6月
  • 2021年5月
  • 2021年4月
  • 2021年3月
  • 2021年2月
  • 2021年1月
  • 2020年5月
  • 2019年12月
  • 2019年10月
  • 2019年9月
  • 2019年6月
  • 2019年5月
  • 2019年2月
  • 2019年1月
  • 2018年12月
  • 2018年9月
  • 2018年8月
  • 2018年7月
  • 2018年6月
  • 2018年3月
  • 2018年2月
  • 2018年1月
  • 2017年11月
  • 2017年10月
  • 2017年9月
  • 2017年7月
  • 2017年3月
  • 2017年1月
  • 2016年12月
  • 2016年11月
  • 2016年10月
  • 2016年7月
  • 2016年3月
  • 2016年2月
  • 2016年1月
  • 2015年12月
  • 2015年11月
  • 2015年10月
  • 2015年9月
  • 2015年8月
  • 2015年7月
  • 2015年4月
  • 2015年3月
  • 2015年2月
  • 2015年1月
  • 2014年12月
  • 2014年11月
  • 2014年10月
  • 2014年9月
  • 2014年8月
  • 2014年7月
  • 2014年6月
  • 2014年5月
  • 2014年4月
  • 2014年3月
  • 2014年2月
  • 2014年1月
  • 2013年12月
  • 2013年11月
  • 2013年10月
  • 2013年9月
  • 2013年8月
  • 2013年7月
  • 2013年6月
  • 2013年5月
  • 2013年4月
  • 2013年3月
  • 2013年1月
  • 2012年11月
  • 2012年10月
  • 2012年9月
  • 2012年8月
  • 2012年7月
  • 2012年6月
  • 2012年5月
  • 2012年4月
  • 2012年3月
  • 2012年2月
  • 2012年1月
  • 2011年12月
  • 2011年11月
  • 2011年10月
  • 2011年9月
  • 2011年8月
  • 2011年6月
  • 2011年5月
  • 2011年4月
  • 2011年3月
  • 2011年2月
  • 2010年12月
  • 2010年11月
  • 2010年10月
  • 2010年9月
  • 2010年8月
  • 2010年6月
  • 2010年5月
  • 2010年2月
  • 2010年1月
  • 2009年12月
  • 2009年11月
  • 2009年10月
  • 2009年9月
  • 2009年8月
  • 2009年7月
  • 2009年6月
  • 2009年5月
  • 2009年4月
  • 2009年3月
  • 2009年2月
  • 2009年1月
  • 2008年8月
  • 2008年6月
  • 2008年5月
  • 2008年4月
  • 2008年2月
  • 2007年11月
  • 2007年8月
  • 2007年6月
  • 2007年5月
  • 2007年4月
  • 2007年3月
  • 2007年2月
  • 2007年1月
  • 2006年10月
  • 2006年8月
© 2006 - 2023 久久日记本
Powered by WordPress | Theme: Graphy for 99diary