DataGrid中如何实现超链接
2019-10-18 08:39:22来源:爱站网 阅读 ()
在开发项目的时候相信大家都有使用过超链接吧,但是你知道在DataGrid中如何实现超链接吗?如果你还不知道的话那么现在就跟爱站小编一起去学习学习吧。
1.使用DataGrid中的超链接列—HyperLinkColumn
相信很多人都使用过datagrid中的超链接列,它很好用,默认情况下只能传递一个参数,如下所示:
?
<asp:HyperLinkColumn DataTextField="CompanyName" DataNavigateUrlField="CustomerID"???? DataNavigateUrlFormatString="Default2.aspx?customerid={0}"? eaderText="link">
</asp:HyperLinkColumn>
从上可以看出,传递一个参数的超链接是很容易做到的。那么传递多个参数该如何做?
?
2.在DataGrid的ItemDataBound事件中对超链接列赋值
假设有一个id为DataGrid1的Datagrid,第一列为超链接列(下标为0),那么它的ItemDataBound事件可写成下面形式。
?
private void DataGrid1_ItemDataBound(object sender,System.Web.UI.WebControls.DataGridItemEventArgs?? e)?
? {?
????? if(e.Item.ItemType==ListItemType.Pager||e.Item.ItemType==ListItemType.Header||e.Item.ItemType==ListItemType.Footer)
???? {
??????? return;? //判断是否为页眉,页脚
???? }
???? else
???? {
??????? HyperLink link=( HyperLink)e.Item.Cells[0].Controls[0];//这里也可以用findcontrol
??????? link.NavigateUrl="webform3.aspx?id=XXX & name=XXX";
//如果跟某列有关,则可写为????
?????? // link.NavigateUrl="webform3.aspx?id=”+e.Item.Cells[列号].text;
????? }
}
?
??? 如果想在模版列使用超链接,可以在该列模版设为LinkButton,可以多个LinkButton在一起,不过id不能相同。我们仍假定该列位是第一列,此时,为其中某个LinkButton定义链接可以如下,把语句
?
?HyperLink link=( HyperLink)e.Item.Cells[0].Controls[0];
替换成
?
?
???? LinkButton link=( LinkButton)e.Item.Cells[0]. FindControl(“LinkButton的id”);
???? link.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:TemplateColumn>
? <ItemTemplate>
?? <a href="Default.aspx?id='<%#(String)DataBinder.Eval(Container.DataItem,"CustomerID")%>'
???????????????????????? &name='<%#(String)DataBinder.Eval(Container.DataItem,"CompanyName")%>'">操作</a>
? </ItemTemplate>
</asp:TemplateColumn>
?
??? 它功能就是点击时转到Default.aspx,同时传递参数id和name,这里两个参数都是通过数据绑定动态生成。这种方法在VS2005中是成功的,但是在VS2003中却报错。
??? 还有一种方法很巧妙,它同样实现第三种方法的功能:假设第二列做为超链接,aspx页面代码:
?
<asp:boundcolumn?? DataField="ID"?? Visible=False></asp:boundcolumn>? //第一列
<asp:boundcolumn?? DataField="名称"></asp:boundcolumn>//第二列
?
?? ItemDataBound事件如下:
?
public?? void?? DataGrid1_ItemDataBound(object sender,DataGridItemEventArgs e)?
{??????????
?????? if(e.Item.ItemType==ListItemType.Pager||e.Item.ItemType==ListItemType.Header||e.Item.ItemType==ListItemType.Footer)
?????? {
????????? return;//判断是否为页眉,页脚
?????? }
????? else
?????? {
????????? e.Item.Cells[1].Text="<a href=News.aspx?ID="+e.Item.Cells[0].Text+">"+e.Item.Cells[1].Text+"</a>";//这里可以改成你需要的;?
?????? }?????
}
上文介绍的就是关于DataGrid中如何实现超链接的内容,在asp.net编程中还有很多知识技巧值得我们去挖掘,一定要加油哦!
原文链接:https://js.aizhan.com/develop/aspnet/9550.html
如有疑问请与原作者联系
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
上一篇:.aspx转换为.htm的方法
下一篇:asp.net如何实现无刷新翻页
- asp.net源程序编译为dll文件并调用的实现过程 2020-03-29
- WPF实现带全选复选框的列表控件 2020-03-29
- PHP session实现购物车功能 2020-03-23
- WPF实现简单的跑马灯效果 2020-03-23
- ASP.NET使用AjaxPro实现前端跟后台交互详解 2020-03-19
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash