最近做个小东西,发现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>