asp.net DataList中hyperlink传递参数及打开新页面全解

最近做个小东西,发现DataList中hyperlink传递参数不好做,找了许多论坛、文章都不尽如人意,后来经过自己捉摸,终于找到了实现的方法,现在贴出来大家共享!

在aspx页面源码中书写方式如下:

<asp:HyperLink ID="HyperLink1" runat="server"  Width="177px" NavigateUrl='<%# "ToGoal.aspx?ID=" +  DataBinder.Eval( Container.DataItem,"ID") %>' ><%# DataBinder.Eval( Container.DataItem,"Text") %></asp:HyperLink></td>

做完这个之后感觉有点不太满意,因为我想打开新的页面,而不是在原页面进行跳转,原来经常使用的
 response.write("<script language=javascript>window.open('new.aspx');</script>")
 会被认为是弹出窗口被浏览器屏蔽,所以只好想其他办法。后来发现写成下边这样就可以了。
<asp:HyperLink ID="HyperLink1" runat="server"  Width="177px"  ><a href="http://www.sina.com"  target="_blank"><%# DataBinder.Eval( Container.DataItem,"Text") %></a></asp:HyperLink></td>

如果你的链接地址是从数据库取出来的,那就写成下边这样:
<asp:HyperLink ID="HyperLink1" runat="server"  Width="177px"  ><a href='<%# "http://" +  DataBinder.Eval( Container.DataItem,"Url") %>' target="_blank"><%# DataBinder.Eval( Container.DataItem,"Url") %></a></asp:HyperLink></td>

你可能感兴趣的:(datalist)