,,DataGrid中实现超链接的3种方法

,,DataGrid中实现超链接的3种方法

本文介绍了在DataGrid中实现超链接的三种方法,有需要的朋友可以参考一下。

1.使用DataGrid中的超链接列—HyperLinkColumn

相信很多人都用过datagrid中的超链接列,而且效果很好。默认情况下,只能传递一个参数,如下所示:

复制代码如下:ASP:超链接列datatextfield='公司名称' datanavigateurlfield=' customerid ' datanavigateurlformat string=' default 2 . aspx?customerid={ 0 } ' eader text=' link '/ASP:hyperlink column从上面可以看出,传递一个参数的超链接是很容易的。那么如果传递多个参数该怎么办呢?

2.在DataGrid的ItemDataBound事件中对超链接列赋值

假设有一个id为DataGrid1的Datagrid,第一列是一个超链接列(下标0),那么它的ItemDataBound事件可以写成下面的形式。

复制代码如下:private void datagrid 1 _ itemdatabound(对象发送方,系统。web . ui . web controls . datagriditemeventargs e){ if(e . item . item type==listitem type。pager | | e . item . item type==listitem type。header | | e . item . item type==listitem type。页脚){ return//确定是页眉还是页脚} else { hyperlink link=(hyperlink)e . item . cells[0]。控件[0];//也可以使用FindControlLink。Navigateurl=' webform3.aspx?id=XXX name=XXX ';//如果与列相关,可以写成//link . navigateurl=' web form 3 . aspx?id=" e . item . cells[列号]。文本;}}

如果要在模板列中使用超链接,可以将该列中的模板设置为LinkButton。您可以同时拥有多个linkbuttons,但id不能相同。我们仍然假设该列位是第一列。这时,为其中一个LinkButton定义一个链接可以如下:语句

复制代码如下:hyperlink link=(hyperlink)e . item . cells[0]。控件[0];用…替换

复制代码如下:link button link=(link button)e . item . cells[0]。FindControl(" link button id ");链接。attributes[' onclick ']=' script location . href=' XXX . aspx ';/script ';

当该列只有一个控件,即LinkButton时,可以通过下面的语句实现:

复制代码如下:e.item.cells [0]。attributes[' onclick ']=' script location . href=' XXX . aspx ';/script ';

这样可以节省查找控件的时间。

其实上面我们已经提到了两种方法,一种是使用HyperLinkColumn在ItemDataBound事件中添加NavigateUrl,另一种是在ItemDataBound事件中使用javascript定义click事件。后者更灵活,只要控件有click事件。

3.使用HTML超链接标记

复制代码如下:ASP: template列项模板a href=' default.aspx?id=' % #(string)databinder . eval(container . dataitem,' customerid ')% ' name=' % #(string)databinder . eval(container . dataitem,' company name ')% ' action/a/item template/ASP:template column

它的作用是点击时转到Default.aspx,同时传递参数id和名称,其中两个参数都是通过数据绑定动态生成的。此方法在VS2005中成功,但在VS2003中报告了一个错误。

还有一个巧妙的方法,也实现了第三种方法的功能:假设第二列作为超链接,aspx页面代码:

复制代码如下:ASP:boundcolumn data field=' id ' visible=false/ASP:BoundcolumnData field=' name '/ASP:BoundcolumnData field//第二列

ItemDataBound事件如下:

复制代码如下:public void datagrid 1 _ item databound(object sender,DataGridItemEventArgs e){ if(e . item . item type==listitem type。pager | | e . item . item type==listitem type。header | | e . item . item type==listitem type。页脚){ return//确定是页眉还是页脚} else {e.item.cells [1]。text=' a href=news.aspx?ID=' e.Item.Cells[0]。Text '' e.Item.Cells[1]。文本“/a”;//这个可以改成你需要的;} }

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

相关文章阅读

  • word文档无法编辑是怎么回事-
  • 华为手机怎么设置返回键(华为手机下面的三个按键设置方法)
  • lumia950怎么样(Lumia950体验分享)
  • otg连接是什么意思(OTG连接手机方法)
  • 笔记本触摸板怎么右键(笔记本电脑触控板手势操作设置)
  • 真我x7怎么样(realme X7 系列体验)
  • 苹果的A16处理器有多强(苹果的A16处理器的介绍)
  • 小米互传怎么用(小米手机的连接与共享教程)
  • 怎么设置电脑桌面图标自动对齐 设置电脑桌面自动整理图标的方法
  • 宽带错误651最简单解决方法(处理宽带错误651的措施)
  • 大学生手机有什么推荐(大学生换手机攻略)
  • 天玑1100和骁龙778g哪个好(骁龙778G、天玑900、天玑1100购选建议)
  • yum update 升级报错的解决办法
  • Windows10禁用屏保教程
  • 连接wifi显示无互联网连接怎么办(无线连上了却不能上网处理绝招)
  • 留言与评论(共有 条评论)
       
    验证码: