单击行内任意处选中该行<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />
  这个系列是在开发过程中对遇到的技术问题的一个总结,当时对这个控件的了解不是很多,但是根据需要实现的功能,不得不查阅N多资料,在MSDN文档中只有英文的说明,我整理并翻译了出来,在此和大家一起分享。转载请加此连接[url]http://august.blog.51cto.com[/url],谢谢!

DataGrid中提供的选择行的默认的方式是添加一个Select按钮(实际上,是一个LinkButton按钮),将其CommandName属性设为“Select”,当单击按钮时,DataGrid得到“Select”命令,并自动地在选中模式下显示该行。

  并非所有的用户都会喜欢默认的“Select”按钮,问题是如何实现在某行的任意处单击而能选中该行。The solution is to perform a kind of sleight-of-hand in the grid.你可以象通常那样添加一个Select LinkButton,用户仍然可以使用它,也可以将它隐藏,然后在Page中加入客户端脚本将Select按钮的功能有效地复制到整个行。
下面的例子说明了如何来实现。在GataGrid的ItemDataBound句柄中,首先要保证选中的行不能是header ,footer 或者Pager。然后得到Select按钮的一个引用。在这个例子中,假设是第一个单元格中的第一个控件。然后调用一个少有人知的方法——GetPostBackClientHyperLink,这个方法返回一个设计好的控件的PostBack调用的名称。换句话说,如果传递一个引用到一个LinkButton控件,这个方法将返回用于执行PostBack的客户端功能调用的名称。
最后,将客户端方法指定给Item 本身,当DataGrid 生成时,它类似于一个HTML的Table。将方法指定给Item,等价于向表中的每一个行添加客户端代码。DataGrid的Item对象并不直接支持客户端代码到自身的方法,但是,我们可以通过它的Attributes集合来实现,这个集合传递通过浏览器指定给它的任何属性项。
注意:这个技术的一个缺点在于,它在某种程度上增加了生成到浏览器的流,并且为每行的视图状态增加了信息量。
private void DataGrid1_ItemDataBound(object sender,
System.Web.UI.WebControls.DataGridItemEventArgs e)
{
   ListItemType itemType = e.Item.ItemType;
   if ((itemType == ListItemType.Pager) ||
       (itemType == ListItemType.Header) ||
       (itemType == ListItemType.Footer))
   {
      return;
   }
   LinkButton button = (LinkButton)e.Item.Cells[0].Controls[0];
   e.Item.Attributes[" =
      Page.GetPostBackClientHyperlink(button, "");
}
 
(--------------------Finished---------------------)

DataGrid Web Control 连载之九相关推荐

  1. nginx高性能WEB服务器系列之九--nginx运维故障日常解决方案

    nginx系列友情链接: nginx高性能WEB服务器系列之一简介及安装 https://www.cnblogs.com/maxtgood/p/9597596.html nginx高性能WEB服务器系 ...

  2. Web Control 开发系列(三) 解析IPostBackEventHandler和WebForm的事件机制

    WebForm最大的魅力大概就是它自己的一套事件处理机制了,要做一个好的Control,必须深入理解这套机制,只有这样才可以让我们的Control有一整套Professional的Event,而IPo ...

  3. Web布局连载——两栏固定布局(五)

    在上一篇<Web布局连载--两栏固定布局(四)>中留了一个下文,"No div, no float, no clear, no hack".看起来很有意思,这种没有di ...

  4. DotNetTextBox V2.0 Web Control(ASP.NET2.0 增强型TextBox控件,完全支持AJAX.NET)

    [控件界面] [控件介绍] 名称:DotNetTextBox V2.0 Web Control 免费无限制版 类型:ASP.NET2.0 增强型TextBox控件 作者: 小宝.NET2.0 主页:h ...

  5. 在C#后代码里使用IE WEB Control TreeView

    在C#后代码里使用IE WEB Control TreeView 网站目录下需要有Microsoft.Web.UI.WebControls.dll和相应的文件 如大家要转载,请保留本人的版权. /* ...

  6. 【U8+】用友U8+12.0在win11系统上IE Web Control 组件无法安装

    [问题现象] 在win11系统上,安装用友U8+12.0的时候, 缺省组件中的IE Web Control 组件无法安装 并且提示[microsoft internet explorer webcon ...

  7. Design the Web: Control Colors in Photoshop with SmartObjects Photoshop网页设计教程之如何用智能对象控制色彩 Lynda课程中文

    Design the Web: Control Colors in Photoshop with SmartObjects 中文字幕 Photoshop网页设计教程之如何用智能对象控制色彩 中文字幕D ...

  8. JS - Web端的点九图

    顾名思义,就是跟安卓的点九图类似,将一张图片切割成9部分,固定四周四个角,其他部分可拉伸,这里仅作一个记录,具体可看官方文档 一.点九图 "点九"是andriod平台的应用软件开发 ...

  9. Web Hacking 101 中文版 九、应用逻辑漏洞(一)

    九.应用逻辑漏洞 作者:Peter Yaworski 译者:飞龙 协议:CC BY-NC-SA 4.0 应用逻辑漏洞不同于其他我们讨论过的类型.虽然 HTML 注入.HTML 参数污染和 XSS 都涉 ...

最新文章

  1. Android studio 导入jar 文件
  2. [LeetCode] 130. Surrounded Regions Java
  3. git分支(branch)操作相关命令
  4. Oracle 学习笔记(三)
  5. python全套学习方法_python学习方法总结(内附python全套学习资料)
  6. java怎么在哪写代码_java把这段代码不写死问题出现在哪儿
  7. Android 12 预览版发布,64G手机用户:我又活了
  8. 6.12使用tensorflow来搭建一个Transformer
  9. mysql语句怎么替换_mysql怎么批量替换sql语句
  10. 华为手机 图标消失_华为手机升级EMUI 10后解决Google Play“消失”教程
  11. 让HTML播放器使用指定ua,chimee-mobile-player
  12. sublime在wamp下配置php文件,配置WAMP环境下的sublime和PHPdesigner
  13. 模拟电子_热敏电阻PTC和NTC的区别与作用
  14. 推荐18个非常棒的Web和移动开发框架
  15. java notifier_Java Notifier類代碼示例
  16. js逆向 空气质量检测平台
  17. android编码技巧_我如何使用编码技巧使航空公司取代丢失的婴儿车
  18. 海外权威媒体好评连连,一加5T中国11月28号发布
  19. C++——set基本操作总结
  20. ​中国涂装行业市场调研分析及十四五发展前景展望报告2021年版

热门文章

  1. 在ubuntu上安装最新稳定版本的node及npm
  2. [PHP]php发布和调用Webservice接口的案例
  3. MySQL数据库备份和还原的常用命令小结
  4. spring中的RowMapper
  5. 计算两个日期之间有多少天多少小时多少分钟
  6. querySelector用法改进
  7. tomcat设置自动监听替换class文件
  8. 【洛谷5251】[LnOI2019] 第二代图灵机(线段树+ODT)
  9. BZOJ 1103: [POI2007]大都市meg
  10. (一)java多线程之Thread